【问题标题】:"symbol(s) not found for architecture x86_64" error when compiling Irrlicht project on MacOS在 MacOS 上编译 Irrlicht 项目时出现“未找到架构 x86_64 的符号”错误
【发布时间】:2013-04-03 10:56:39
【问题描述】:

我已经在 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 的方式上。我就是这样做的:

  1. 使用this tutorial 编译Irrlicht。 编译时,我收到了 4 个关于使用不推荐使用的函数的警告,但我认为它不会导致我的问题。
  2. this 安装。

谁能帮我解决这个问题? 谢谢。

upd:我发现这个错误只发生在我尝试调用任何 Irrlicht 函数时。库只是静态链接到项目,它工作正常。

【问题讨论】:

    标签: macos compiler-errors codeblocks irrlicht


    【解决方案1】:

    大约两年前,我在 Mac OS X (10.6) 上使用 Irrlicht 时遇到过此类错误,但我真的不记得我是如何解决这个问题的。 我记得它与链接器有关(就像你一样)所以我必须在 Xcodetarget 部分中指定 libIrrlicht.a 文件并放置一个

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

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


    P.S.:你有没有指定 Code::Blocks 去哪里找这个库? 我记得在 Xcode (3.2.x) 中也有不同的路径部分 :)

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-31
      • 2019-09-04
      • 1970-01-01
      • 1970-01-01
      • 2012-12-17
      • 1970-01-01
      • 1970-01-01
      • 2013-09-29
      相关资源
      最近更新 更多