2012-08-01 70 views
1

我正在嘗試使用Xcode 4.4構建一個dylib,而這正是之前構建好的。我碰到兩個問題:Xcode 4.4找不到10.6 sdk庫-lstdC++

  1. 如果我建立對10.7 sdk,它建立罰款。然而在10.6.8測試時,我得到了以下錯誤:

Dyld Error Message: Symbol not found: _wcsdup Referenced from: /lib/Release/libwx_baseu-2.9.dylib Expected in: /usr/lib/libSystem.B.dylib

  1. 如果我建立針對10.6 SDK(從下載的Xcode 4.3.3中提取),我得到以下鏈接錯誤:

Ld build/Debug/libCodec.dylib normal i386 cd /Developer/Projects/Common/osx setenv MACOSX_DEPLOYMENT_TARGET 10.6 /Applications/Xcode.app/Contents/Developer/usr/bin/llvm-g++-4.2 -arch i386 -dynamiclib -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.6.sdk -L/Developer/Projects/Common/osx/build/Debug -L/Developer/Packages/libsndfile/osx/lib -L/Developer/Packages/wxWidgets/build-debug/lib -F/Developer/Projects/Common/osx/build/Debug -filelist /Developer/Projects/Common/osx/build/Common.build/Debug/Codec.build/Objects-normal/i386/Codec.LinkFileList -install_name "@rpath/libCodec.dylib" -mmacosx-version-min=10.6 -lSampleFormat -lSoundFile -lsndfile.1 -lwx_baseu-2.9 -single_module -compatibility_version 1 -current_version 1 -o /Developer/Projects/Common/osx/build/Debug/libCodec.dylib

ld: library not found for -lstdc++ collect2: ld returned 1 exit status Command /Applications/Xcode.app/Contents/Developer/usr/bin/llvm-g++-4.2 failed with exit code 1

我寧願建立針對10.6 SDK,因爲我需要支持10.6.8。在所有情況下,我將最小部署目標設置爲10.6,但這並沒有幫助。

更新(08/05/2012): 我解決了在通過更改爲蘋果的devualt llvm 4.0編譯器(而不是我使用的llvm gcc編譯器)而針對10.6 SDK構建時收到的錯誤。

回答

2

僅僅因爲您手動從舊版本的Xcode中複製10.6並不意味着您的新Xcode將知道如何處理它。

但不要擔心,只需將部署目標(如您已經完成)設置爲10.6,並鏈接到當前隨Xcode 4.4提供的任何SDK。

你會在10.6上運行就好了。

相同的概念適用於iOS,並here's a related question that adds some extra detail(在iOS方面,但同樣的理念適用於MacOS)。

+0

我確實嘗試了在Xcode 4.4中的當前sdk,即10.7。但正如我上面提到的,我得到了上述鏈接錯誤。 – Tamer 2012-08-02 00:06:45