2014-09-24 4 views
0

Я пытаюсь получить dragonegg, созданный и запущенный на моем mac. Использование LLVM 3.5 и gcc 4.8, из менеджера пакетов homebrew.Dragonegg на Mac OS X Проблемы

Сборка dragonegg в соответствии с ридми (GCC=/usr/local/bin/gcc-4.8 LLVM_CONFIG=/usr/local/bin/llvm-config-3.5 make) заканчивается с этой ошибкой:

Compiling Cache.cpp 
/Users/aelberg/Development/dragonegg-3.5.0.src/src/Cache.cpp:243:15: error: no matching function for call to 'operator new' 
    WeakVH *W = new (&(*slot)->V) WeakVH(V); 
      ^ ~~~~~~~~~~~~~ 
note: candidate function not viable: requires 1 argument, but 2 were provided 
1 error generated. 
make: *** [Cache.o] Error 1 

Это, как представляется, относятся к вопросам LibC++ против libstdC++, которые были проблемы компиляции на макинтош. И dragonegg будет компилировать с GCC=/usr/local/bin/gcc-4.8 LLVM_CONFIG=/usr/local/bin/llvm-config-3.5 LDFLAGS="-L/usr/local/lib/ -L/usr/lib -L/usr/local/lib/llvm-3.5/usr/lib" CXX="/usr/local/bin/clang++-3.5 -stdlib=libc++" CXXFLAGS="-I/usr/local/lib/llvm-3.5/include/c++/v1" make

Однако, когда я пытаюсь использовать dragonegg собрать что-нибудь, я получаю этот несчастный набор ошибок:

$ /usr/local/bin/gcc-4.8 -fplugin=/usr/local/lib/dragonegg_483_35.so hello.c 
/var/folders/s1/_v14lsc56tv44hm304m07vn40000gq/T//ccPKylId.s:2:Unknown pseudo-op: .macosx_version_min 
/var/folders/s1/_v14lsc56tv44hm304m07vn40000gq/T//ccPKylId.s:2:Rest of line ignored. 1st junk character valued 49 (1). 
/var/folders/s1/_v14lsc56tv44hm304m07vn40000gq/T//ccPKylId.s:9:Unknown pseudo-op: .cfi_startproc 
/var/folders/s1/_v14lsc56tv44hm304m07vn40000gq/T//ccPKylId.s:12:Unknown pseudo-op: .cfi_def_cfa_offset 
/var/folders/s1/_v14lsc56tv44hm304m07vn40000gq/T//ccPKylId.s:12:Rest of line ignored. 1st junk character valued 49 (1). 
/var/folders/s1/_v14lsc56tv44hm304m07vn40000gq/T//ccPKylId.s:14:Unknown pseudo-op: .cfi_offset 
/var/folders/s1/_v14lsc56tv44hm304m07vn40000gq/T//ccPKylId.s:14:Rest of line ignored. 1st junk character valued 37 (%). 
/var/folders/s1/_v14lsc56tv44hm304m07vn40000gq/T//ccPKylId.s:17:Unknown pseudo-op: .cfi_def_cfa_register 
/var/folders/s1/_v14lsc56tv44hm304m07vn40000gq/T//ccPKylId.s:17:Rest of line ignored. 1st junk character valued 37 (%). 
/var/folders/s1/_v14lsc56tv44hm304m07vn40000gq/T//ccPKylId.s:72:Unknown pseudo-op: .cfi_endproc 

$ /usr/local/bin/gcc-4.8 hello.c 

$ ./a.out 
Hello World 

Это, очевидно, представляется маловероятным, чтобы привлечь любые из настройки в флагах компилятора, используемых для создания dragonegg, поскольку все они относятся к C++.

Любые предложения?

ответ

1

Решение, которое я нашел, - это сказать, что dragonegg использовал ассемблер llvm, а не системный ассемблер, добавив -specs=[path to integrated=as.specs]. На документацию dragonegg это не должно быть ни необходимым, ни работать, но это так.

Смежные вопросы