2017-12-09 35 views
1

ソースからclangをビルドしていますが、通常の場所には存在しないgcc 7.2ビルドを使用しています。この結果、デフォルトでバイナリにこのツールチェーンを使用します。特定のgccツールチェーンを使用してソースからclangを構築する

$ export GCC_PREFIX=/path/to/gcc/7.2 
$ mkdir -p build 
$ cd build 
$ cmake -G Ninja -DCMAKE_C_COMPILER=${GCC_PREFIX}/bin/gcc \ 
    -DCMAKE_CXX_COMPILER=${GCC_PREFIX}/bin/g++ \ 
    -DCMAKE_BUILD_TYPE=RelWithDebInfo -DLLVM_TARGETS_TO_BUILD=X86 .. 

しかし、構築結果は、ちょうど私がそれを望んだ(と、パスが示唆するように、4.8.5は少し古いですが)のような代わり/path/to/gcc/7.2/includeの含まれ、標準ライブラリの/usr/include/c++/4.8.5になります。私が実行しようとしました。結果のバイナリがインクルードディレクトリに必要なパスを検索するようなclangを構築する方法はありますか?

注:バイナリ--gcc-toolchain=${GCC_PREFIX}で実行しています。それは動作します。私がやりたいことはバイナリにビルドすることです。毎回入力する必要はありません。

答えて

1

これはただ見つかりました。これを行う正しい方法は、GCC_INSTALL_PREFIXを提供することです。

$ cmake -G Ninja -DCMAKE_C_COMPILER=${GCC_PREFIX}/bin/gcc \ 
    -DCMAKE_CXX_COMPILER=${GCC_PREFIX}/bin/g++ \ 

    -DGCC_INSTALL_PREFIX=${GCC_PREFIX} \ 

    -DCMAKE_BUILD_TYPE=RelWithDebInfo -DLLVM_TARGETS_TO_BUILD=X86 .. 

これは正しいことです。結果として得られるclangバイナリは、あなたが望むように--gcc-toolchain=${GCC_PREFIX}を提供したかのように動作します。

関連する問題