【问题标题】:ld: symbol(s) not found for architecture x86_64 (Xcode 4) // opengles.old: 未找到体系结构 x86_64 (Xcode 4) // opengles.o 的符号
【发布时间】:2011-11-04 18:49:54
【问题描述】:

我正在使用外部库制作一个 xcode 命令工具应用程序,但出现了一些错误。

我试图解决的问题:

  • 使用不同的编译器构建
  • 删除 GLES 文件夹并重新添加
  • 在 32 和 64 上构建它

我是否遗漏了有关 opengles.cpp 的内容?

如果您知道下一步可以做什么,请说出来,您可以在下面找到有关项目和错误的所有信息。如果您需要更多信息,我很乐意为您提供帮助。另外,如果您知道如何从 xcode 4 中编译的 opnni 中获取 NiUsertracker 示例,这也将对解决此问题有很大帮助

错误:

问题可能与这些文件有关:

项目设置的信息(它是一个命令行工具而不是一个应用程序):

构建时的输出截图

构建设置

【问题讨论】:

    标签: c++ objective-c xcode opengl opengl-es


    【解决方案1】:

    通常当我遇到这些错误时,这是​​因为我忘记与库链接。您获得的文件夹仅包含标题;尝试找到 OpenGL ES 的框架。 (我觉得 Xcode 自带 GLES 框架,尝试搜索。)

    【讨论】:

    • 当我看到这些错误时,这个策略解决了我的问题。谢谢!
    【解决方案2】:

    在终端 (Terminal.app) 中手动运行命令以找出问题所在:

    [ 11:56 jon@hozbox ~ ]$ Ld /Users/olivierjanssens/Library/Developer/Xcode/DerivedData/scene-anlidnesspxdbhblrrwqfwybphqj/Build/Products/Debug/scene normal x86_64
    [ 11:56 jon@hozbox ~ ]$ cd /Users/olivierjanssens/Documents/xcode/scene
    [ 11:56 jon@hozbox ~ ]$ setenv MACOSX_DEPLOYMENT_TARGET 10.7
    [ 11:56 jon@hozbox ~ ]$ /Developer/usr/bin/llvm-g++-4.2 -arch x86_64 -isysroot /Developer/SDKs/MacOSX10.7.sdk -L/Users/olivierjanssens/Library/Developer/Xcode/DerivedData/scene-anlidnesspxdbhblrrwqfwybphqj/Build/Products/Debug -L/Users/olivierjanssens/Documents/xcode/scene/Libs -F/Users/olivierjanssens/Library/Developer/Xcode/DerivedData/scene-anlidnesspxdbhblrrwqfwybphqj/Build/Products/Debug -filelist /Users/olivierjanssens/Library/Developer/Xcode/DerivedData/scene-anlidnesspxdbhblrrwqfwybphqj/Build/Intermediates/scene.build/Debug/scene.build/Objects-normal/x86_64/scene.LinkFileList -mmacosx-version-min=10.7 /usr/lib/libnimCodecs.dylib /usr/lib/libnimMockNodes.dylib /usr/lib/libnimRecorder.dylib /usr/lib/libOpenNI.dylib /usr/lib/libXnVFeatures.dylib /usr/lib/libXnVHandGenerator.dylib -framework GLUT -framework OpenGL /Users/olivierjanssens/Documents/xcode/scene/Libs/glut64.lib -o
    

    运行最后一条命令(/Developer/usr/bin/llvm-g++-4.2)后,会显示失败的原因。

    如果setenv MACOSX_DEPLOYMENT_TARGET 10.7 命令失败,请将setenv 替换为export 并在10.7 之前放置一个=,如下所示:

    [ 11:56 jon@hozbox ~ ]$ export MACOSX_DEPLOYMENT_TARGET="10.7"
    

    您似乎缺少构建配置的设置。可能是应用名称 (MyApp.app)。检查以确保您没有遗漏项目设置窗口中“信息”选项卡中的任何内容(只需单击左侧文件列表中的顶部项目)。

    来自llvm-gcc man page

    -o filename指定输出文件为filename。

    【讨论】:

    • 您可能需要从项目中完全删除该 egl 框架,然后将其重新添加。有时框架会无缘无故地在 xcode 中取消链接。
    • 没有egl框架。但是有一个 opengles.h 文件。我删除了我添加到项目中的所有文件,然后再次添加它们。没有不同 。我添加了文件夹的屏幕截图,其中包含我认为可能导致错误的文件。
    • 您似乎缺少构建配置的设置。可能是应用名称 (MyApp.app)。检查以确保您没有遗漏项目设置窗口中“信息”选项卡中的任何内容(只需单击左侧文件列表中的顶部项目)。
    • 我不是在开发应用程序,它是一个命令行工具。而且我不能更改名称。虽然设置了项目名称
    • 您能否提供目标构建设置的屏幕截图或列表?只是“基本”视图应该没问题,而不是“全部”。
    【解决方案3】:

    删除框架。然后重新添加。退出 Xcode 并重新启动它。

    【讨论】:

    • 它不是一个框架,而是另一个项目的文件夹。我确实像你说的那样删除了文件夹添加它再次重新启动xcode。但我很害怕没有区别
    猜你喜欢
    • 1970-01-01
    • 2021-09-08
    • 2017-06-08
    • 2019-03-10
    • 1970-01-01
    • 1970-01-01
    • 2013-11-18
    • 2020-06-20
    • 1970-01-01
    相关资源
    最近更新 更多