在MacOS上编译Irrlicht项目时"symbol(s) not found for architecture x86_64"错误



我已经在MacOSX 10.8上编译并安装了irlicht 1.8。然后我创建了使用irrlight的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

我猜问题是在我编译的方式。我是这样做的:

  1. 使用本教程编译灯光。当编译时,我得到了4个关于使用废弃函数的警告,但我决定它不会导致我的问题。
谁能帮我一下吗?谢谢。

upd:我发现这个错误只发生在我试图调用任何irrlight函数时。与库只是静态链接到项目,它工作得很好

我在大约两年前的Mac OS X(10.6)上使用Irrlicht时遇到过这些类型的错误,但我真的不记得我是如何解决这个问题的。我记得它与链接器相关(就像你一样),所以我必须指定libirrlight。在Xcode's target部分中添加一个

#pragma comment(lib, "libIrrlicht.a")

在包含(我认为我已经放置了)之后的代码。项目目录中的文件,用于测试)。


注::您是否指定了Code::Blocks在哪里查找库?我记得在Xcode (3.2.x)中也有不同的路径部分:)

P.P.S.:您确定已正确编译了irrlight吗?也许你已经为i386而不是x86_64编译了它:P

相关内容

最新更新