Irrlicht в Eclipse, среда не работает - PullRequest
1 голос
/ 02 февраля 2012

Я пытаюсь использовать Eclipse C ++ и Irrlicht для проекта в школе. Моя проблема состоит в том, чтобы установить оп среду.

Я использовал это http://irrlicht3d.org/wiki/index.php?n=Main.Macintosh

Я использую новый MacBook Pro.

Я думаю, что ошибка в этом флаге. enter image description here

**** Build of configuration Debug for project HalloWorld2 ****

make all 
Building file: ../src/helloworld.cpp
Invoking: GCC C++ Compiler
g++ -I/Users/JAMES/Code/irrlicht-1.7.2/include -O0 -g3 -Wall -c -fmessage-length=0 -arch i386 -fvisibility=hidden -MMD -MP -MF"src/helloworld.d" -MT"src/helloworld.d" -o "src/helloworld.o" "../src/helloworld.cpp"
Finished building: ../src/helloworld.cpp

Building target: HalloWorld2
Invoking: MacOS X C++ Linker
g++ -L/Users/JAMES/Code/irrlicht-1.7.2/source/Irrlicht/MacOSX/build/Release -L/Developer/SDKs/MacOSX10.6.sdk/usr/X11/lib -Xlinker -arch i386 -framework OpenGL -framework Carbon -framework Cocoa -framework IOKit -o "HalloWorld2"  ./src/helloworld.o   -lIrrlicht
i686-apple-darwin11-llvm-g++-4.2: i386: No such file or directory
make: *** [HalloWorld2] Error 1

1 Ответ

1 голос
/ 19 февраля 2012

Проблема заключается в использовании -Xlinker для передачи аргументов компоновщику.Страница man g++ говорит:

-Xlinker option

Передать опцию как компоновщик.Вы можете использовать это для предоставления системных опций компоновщика, которые GCC не знает, как их распознать.

Если вы хотите передать опцию, которая принимает аргумент, вы должны использовать -Xlinker дважды, один раз для опции иодин раз за аргумент.Например, чтобы передать определения -assert, вы должны написать определения -Xlinker -assert -Xlinker.Не получается написать -Xlinker "-assert определения", потому что это передает всю строку как один аргумент, а это не то, что ожидает компоновщик.

Здесь -Xlinker появляется только один раз, тогда какон должен появляться между каждым аргументом, отправляемым компоновщику.Итак, уродливое решение - написать:

-arch -Xlinker i386 -Xlinker -framework -Xlinker OpenGL -Xlinker -framework -Xlinker Carbon -Xlinker -framework -Xlinker Cocoa -Xlinker -framework -Xlinker IOKit

Но если вы найдете способ настроить Eclipse для использования -Wl, вместо -Xlinker, было бы лучше, я думаю:

-Wl, опция

Передать опцию компоновщику как опцию.Если опция содержит запятые, она разделяется на несколько опций в запятых.

Тогда вы можете использовать:

-arch,i386,-framework,OpenGL,-framework,Carbon,-framework,Cocoa,-framework,IOKit
...