1

我正在尝试使用以前构建良好的 Xcode 4.4 构建 dylib。我遇到了2个问题:

  1. 如果我针对 10.7 sdk 构建,它构建得很好。但是,在 10.6.8 上进行测试时,出现以下错误:

Dyld 错误消息:找不到符号:_wcsdup 引用自:/lib/Release/libwx_baseu-2.9.dylib 预期在:/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:找不到-lstdc++ collect2的库:ld返回1退出状态命令/Applications/Xcode.app/Contents/Developer/usr/bin/llvm-g++-4.2失败,退出代码为1

我更喜欢针对 10.6 sdk 构建,因为我需要支持 10.6.8。在所有情况下,我都将最小部署目标设置为 10.6,但这并没有帮助。

更新(08/05/2012):我通过更改为苹果的 devualt llvm 4.0 编译器(而不是我使用的 llvm gcc 编译器)解决了我在针对 10.6 SDK 构建时收到的错误。

4

1 回答 1

2

仅仅因为您手动从旧版本的 Xcode 复制 10.6 并不意味着您的新 Xcode 会知道如何处理它。

但不要担心,只需将部署目标(正如您已经完成的那样)设置为 10.6 并链接到 Xcode 4.4 随附的任何当前 SDK。

你会在 10.6 上运行就好了。

同样的概念适用于 iOS,这是一个相关的问题,增加了一些额外的细节 (就 iOS 而言,但同样的理念适用于 MacOS)。

于 2012-08-01T07:30:59.473 回答