1

以前は正常にビルドされた Xcode 4.4 を使用して dylib をビルドしようとしています。私は2つの問題に遭遇しました:

  1. 10.7 SDK に対してビルドすると、正常にビルドされます。ただし、10.6.8 でテストすると、次のエラーが発生します。

Dyld エラー メッセージ: 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 通常の 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.8 をサポートする必要があるため、10.6 SDK に対してビルドすることをお勧めします。すべての場合において、最小展開ターゲットを 10.6 に設定しましたが、それは役に立ちませんでした。

更新 (2012 年 8 月 5 日): 10.6 SDK に対してビルドするときに受け取ったエラーを、(使用していた llvm gcc コンパイラではなく) Apple の devualt llvm 4.0 コンパイラに変更することで解決しました。

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 に答える