1

我得到這個連接器錯誤,不會讓我編譯。它只發生在模擬器上。

iPhone應用程序的Xcode鏈接器錯誤(只在模擬器上)

要點:
- 只發生在模擬器
- 類似THIS question,卻發現我的.pbxproj文件
沒有FRAMEWORK_SEARCH_PATHS - 雖然我的操作系統是10.6.2,我必須建立目標1.5,以避免其他鏈接錯誤
- libxml2.dylib IS需要,並在我的框架組
- 其他引用的庫,我從來沒有聽說過。
- 試圖在框架下引入其他Lib,並沒有解決。


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進入文件在我的項目包中,因此無法解決問題的解決方式。

回答

12

問題是這樣的:

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

這就是告訴你的模擬器(I386)建立從設備(ARM)使用文件/ usr/lib目錄。

在您的目標中找到/ usr/lib所在的位置(僅使用目標的Get Info/Build Settings選項卡中的搜索氣泡)並將其刪除。如果沒有先告訴使用錯誤的平臺,編譯器將使用正確的平臺的usr/lib。

+1

你真的幫過我的人。謝謝。 – RexOnRoids 2010-03-27 07:46:00

0

我有同樣的事情發生在我身上。我刪除並重新添加了我的所有框架,但仍然存在相同的問題。爲了最終擺脫這個錯誤,我不得不從構建設置下的庫搜索路徑中刪除指向違規庫的路徑。

2

我有同樣的問題。事實證明,在調試環境中運行我的發行版本代碼。點擊「Edit schema ...」,並將Build Configuration更改爲Release解決了我的問題。

相關問題