2012-02-02 70 views
1

我想使用Eclipse C++和Irrlicht在学校的一个项目。我的问题是设置环境。在Eclipse中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 
+0

您运行的是什么版本的MacOS的? – Mankarse 2012-02-02 17:00:10

+0

它在狮子上运行。 – boje 2012-02-02 21:01:17

回答

1

的问题来自于使用-Xlinker传递参数给连接器。的g++手册页说:

-Xlinker选项

把option作为一个选项给连接器。您可以使用它来提供GCC不知道如何识别的系统特定链接器选项。

如果您想传递一个带参数的选项,则必须使用-Xlinker两次,一次用于选项,一次用于参数。例如,要传递-assert定义,您必须编写-Xlinker -assert -Xlinker定义。它 无法编写-Xlinker“-assert definitions”,因为它将整个字符串作为单个参数传递,这不是链接器所期望的。

这里-Xlinker只出现一次,而它应该出现在发送给链接器的每个参数之间。因此,一个丑陋的解决方案是写:

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

但是,如果你找到一个方法来配置Eclipse使用-Wl,,而不是-Xlinker它会更好,我想:

轮候册,选项

将选项作为选项传递给链接器。如果选项包含逗号,则在逗号处将其分割为多个选项。

那么你可以使用:

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