web-dev-qa-db-ja.com

Clang 10は、macOS 10.12でC ++アプリケーションとCMakeをリンクできません

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} ..
3
keith

誰かがCLionでCMAKEを使用している場合IDEこれはCコンパイラとC++コンパイラの両方をテストします。-DCMAKE_CXX_FLAGS="-mlinker-version=405"を追加するだけでは十分ではありません。もちろん"-DCMAKE_C_FLAGS="-mlinker-version=405"を追加する必要があります。 @keithがあなたがあなた自身のリンカーバージョンを使うべきだと述べたこと

2
jimmy mac