2012-08-01 37 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