【问题标题】:Xcode linker error on iPhone app (Only on simulator)iPhone应用程序上的Xcode链接器错误(仅在模拟器上)
【发布时间】:2011-02-01 10:56:29
【问题描述】:

我得到了这个链接器错误,它不会让我编译。它只发生在模拟器上。

要点:
- 仅在模拟器中发生
- 类似于 THIS question,但在我的 .pbxproj 文件中找不到 FRAMEWORK_SEARCH_PATHS
- 虽然我的操作系统是 10.6.2,但我必须构建目标 1.5 以避免其他链接器错误
- libxml2.dylib IS 需要并且在我的框架组中
- 其他我从未听说过的引用库。
- 尝试在框架下引入那些其他的库,没有解决。


Build SpaceTweet of project SpaceTweet with configuration Debug

Ld build/Debug-iphonesimulator/SpaceTweet.app/SpaceTweet normal i386
cd "/Users/Scott/Desktop/iPhone Dev/SpaceTweet(Experimental)"
setenv MACOSX_DEPLOYMENT_TARGET 10.5
setenv PATH "/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc-4.2 -arch i386 -isysroot /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.1.3.sdk "-L/Users/Scott/Desktop/iPhone Dev/SpaceTweet(Experimental)/build/Debug-iphonesimulator" -L/Users/Scott/Desktop "-L/Users/Scott/Desktop/iPhone Dev/SpaceTweet(Experimental)/../../libYAJLIPhone-0" -L/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.0.sdk/usr/lib -L/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.1.3.sdk/usr/lib -L/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.0.sdk/usr/lib "-F/Users/Scott/Desktop/iPhone Dev/SpaceTweet(Experimental)/build/Debug-iphonesimulator" -filelist "/Users/Scott/Desktop/iPhone Dev/SpaceTweet(Experimental)/build/SpaceTweet.build/Debug-iphonesimulator/SpaceTweet.build/Objects-normal/i386/SpaceTweet.LinkFileList" -mmacosx-version-min=10.5 -framework Foundation -framework UIKit -framework CoreGraphics -framework AVFoundation -framework MessageUI -lYAJLIPhone -lxml2 -o "/Users/Scott/Desktop/iPhone Dev/SpaceTweet(Experimental)/build/Debug-iphonesimulator/SpaceTweet.app/SpaceTweet"

ld: warning: in /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.0.sdk/usr/lib/libxml2.dylib, missing required architecture i386 in file
ld: warning: in /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.0.sdk/usr/lib/libSystem.dylib, missing required architecture i386 in file
ld: in /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.0.sdk/usr/lib/libobjc.A.dylib, missing required architecture i386 in file
collect2: ld returned 1 exit status
Command /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc-4.2 failed with exit code 1



线索:
同样,我的问题与THIS SOLVED QUESTION 非常相似,只是在我的情况下,我没有在项目包的 .pbxproj 文件中找到 FRAMEWORK_SEARCH_PATHS 条目,因此无法以解决该问题的方式解决。

【问题讨论】:

    标签: iphone xcode compiler-construction osx-snow-leopard ios-simulator


    【解决方案1】:

    问题是这样的:

    -L/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.0.sdk/usr/lib 
    

    这告诉您的模拟器 (i386) 构建使用来自设备 (arm) /usr/lib 的文件。

    在您的目标中找到 /usr/lib 所在的位置(只需使用目标的获取信息/构建设置选项卡中的搜索气泡)并将其删除。如果没有告诉编译器先使用错误的 usr/lib,编译器将使用正确平台的 usr/lib。

    【讨论】:

    • 你真的帮了我大忙。谢谢。
    【解决方案2】:

    我也有同样的问题。结果是在调试环境中运行我的发布版本代码。单击“编辑架构...”并将构建配置更改为发布解决了我的问题。

    【讨论】:

      【解决方案3】:

      我也遇到过同样的事情。我删除并重新添加了所有框架,但仍然遇到同样的问题。最后,为了摆脱错误,我不得不从构建设置下的库搜索路径中删除指向有问题的库的路径。

      【讨论】:

        猜你喜欢
        • 2016-01-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-04-04
        • 2016-10-12
        相关资源
        最近更新 更多