macos - 在MacOS上编译Irrlicht项目时出现“symbol(s) not found

我已经在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的方式上。这是我的方法:
  • 使用this tutorial编译Irrlicht。
    编译时,我收到4条关于使用不推荐使用的函数的警告,但我认为这不会引起问题。
  • 和this安装。

  • 有人可以帮我吗?
    谢谢。

    upd:我发现仅当我尝试调用任何Irrlicht函数时才会发生此错误。通过将库静态链接到项目,它可以正常工作。

    最佳答案

    大约两年前,我在Mac OS X(10.6)上遇到了Irrlicht这类错误,但我真的不记得如何解决该问题。
    我记得它与链接程序(和您一样)相关,因此我必须在 Xcode 的目标部分中指定libIrrlicht.a文件,并在其中添加一个

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

    在包含之后的代码中(我认为我已将.a文件放置在项目目录中进行测试)。

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

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

    关于macos - 在MacOS上编译Irrlicht项目时出现“symbol(s) not found for architecture x86_64”错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15785446/

    相关文章:

    arrays - 数组表达式语法错误

    vba - VB-下标超出范围,错误9

    compilation - Fedora 18 上的内核编译错误(在 Macbook 上的 Virt

    c++ - 在 ns 2.34 (Jiazi YI ns 2.29) 上添加 mp-olsr 时出现

    java - 在 int 上执行方法

    java - 二进制搜索静态方法遇到问题无法引用

    java - 开始Java : Printing out a 5 pointed star usin

    permissions - 为什么即使许可为777,WHMCS在应用其安全提示后仍显示许可错误?

    java - 引用从对象数组进行打印的方法时找不到符号错误

    java - Double不是抽象的,并且不会重写ListInterface中的抽象方法getNex