JenkinsビルドサーバーでmacOS 10.12を実行しています。
CMake 3.17で最新のClang 10(AppleClangではない)を使用してC++アプリケーションをコンパイルしています。
私が得るエラーは:
The C++ compiler
"/Users/XXX/llvm/bin/clang++"
is not able to compile a simple test program.
It fails with the following output:
ld: unknown option: -platform_version
clang-10: error: linker failed with exit code 1
これは同じサーバー上のClang 9で正常に動作し、Clang 10はmacOS 10.15で他のすべてのビルドツールとソースファイルが同じで正常に動作します(Jenkinsは毎回クリーンビルドを実行します)。 Clang 10とmacOS 10.12の組み合わせのようです。これを引き起こすClang 9とClang 10の間で何か変更はありましたか?
私はCMakeを次のように呼び出しています:
cmake -DCMAKE_OSX_SYSROOT="${macos_sdk}" \
-DCMAKE_C_COMPILER="${llvm_bin}/clang" \
-DCMAKE_CXX_COMPILER="${llvm_bin}/clang++" \
-DCMAKE_OSX_ARCHITECTURES=${architectures} \
-DCMAKE_BUILD_TYPE=${make_build_type} ..
誰かがCLionでCMAKEを使用している場合IDEこれはCコンパイラとC++コンパイラの両方をテストします。-DCMAKE_CXX_FLAGS="-mlinker-version=405"
を追加するだけでは十分ではありません。もちろん"-DCMAKE_C_FLAGS="-mlinker-version=405"
を追加する必要があります。 @keithがあなたがあなた自身のリンカーバージョンを使うべきだと述べたこと