2017-12-09 4 views
1

Ich baue Clang von der Quelle, aber mit einem GCC 7.2 Build, die nicht in der normalen Ort lebt. Ich möchte die resultierende clang++ binäre diese Toolchain standardmäßig verwenden. Ich habe versucht zu tun:Build Clang von der Quelle mit bestimmten GCC Toolchain

$ 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 .. 

aber die daraus resultierende Build sieht gerade in /usr/include/c++/4.8.5 für Standard-Bibliothek statt /path/to/gcc/7.2/include enthält, wie ich wollte es (und, wie der Weg schon sagt, 4.8.5 ist ein bisschen alt). Gibt es eine Möglichkeit, Clam so zu erstellen, dass die resultierende Binärdatei den Pfad sucht, den ich für ihr Include-Verzeichnis haben möchte?

Hinweis, ich weiß, ich führe die Binär mit --gcc-toolchain=${GCC_PREFIX}. Das funktioniert. Ich möchte das in die Binärdatei einbauen, damit ich es nicht jedes Mal eingeben muss.

Antwort

1

Gerade gefunden. Der richtige Weg, dies zu tun ist, GCC_INSTALL_PREFIX zu bieten:

$ 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 .. 

, dass das Richtige tut. Die resultierende Clang-Binärdatei verhält sich wie gewünscht, wenn Sie --gcc-toolchain=${GCC_PREFIX} bereitgestellt haben.

Verwandte Themen