我在MacOSX 10.8上编译并安装了Irrlicht 1.8。然后我创建了使用Irrlicht的CodeBlocks项目。现在,当我尝试编译它时,我得到以下错误:
"_objc_msgSend_stret", referenced from:
irr::CIrrDeviceMacOSX::setResize(int, int)in libIrrlicht.a(CIrrDeviceMacOSX.o)
irr::CIrrDeviceMacOSX::createWindow() in libIrrlicht.a(CIrrDeviceMacOSX.o)
irr::CIrrDeviceMacOSX::CIrrDeviceMacOSX(irr::SIrrlichtCreationParameters const&)in libIrrlicht.a(CIrrDeviceMacOSX.o)
irr::CIrrDeviceMacOSX::CIrrDeviceMacOSX(irr::SIrrlichtCreationParameters const&)in libIrrlicht.a(CIrrDeviceMacOSX.o)
-[AppDelegate windowDidResize:] in libIrrlicht.a(AppDelegate.o)
-[AppDelegate windowWillResize:toSize:] in libIrrlicht.a(AppDelegate.o)
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
我猜这个问题与我编译Irrlicht的方式有关。我就这样做了:
任何人都可以帮助我吗? 感谢。
upd:我发现只有当我尝试调用任何Irrlicht函数时才会出现此错误。对于与项目静态链接的库,它可以正常工作。
答案 0 :(得分:0)
大约两年前,我在Mac OS X(10.6)上遇到了 Irrlicht 这些类型的错误,但我真的不记得我是如何解决这个问题的。 我记得它与链接器有关(就像你一样)所以我必须在 Xcode 的目标部分指定libIrrlicht.a文件并放入
#pragma comment(lib, "libIrrlicht.a")
在include之后的代码中的(我认为我已将 .a 文件放在项目目录中进行测试)。
P.S。:您是否已指定 Code :: Blocks 在哪里寻找库? 我记得在 Xcode (3.2.x)中还有不同的路径部分:)
P.P.S。:你确定你已经正确编译了Irrlicht吗?也许你已经为i386而不是x86_64编译了它:P