2017-12-09 19 views
1

소스에서 clang을 빌드하고 있지만 정상적인 위치에 있지 않은 gcc 7.2 빌드를 사용하고 있습니다. 결과적으로 clang++ 바이너리가이 툴체인을 기본적으로 사용하기를 바랍니다. 내가하려고 노력 :특정 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}을 제공 한 것처럼 작동합니다.