使用自定义gcc从源编译clang-设置默认目标

问题描述 投票:0回答:1

问题

编译gcc时,我正在设置--target=x86_64-mytoolchain-linux-gnu。相应地调整arm64。

我像这样从源代码编译clang:

mkdir build
cd build
cmake .. \
-DCMAKE_INSTALL_PREFIX="/opt/clang" \
-DCMAKE_PREFIX_PATH="/opt/clang" \
-DCMAKE_BUILD_TYPE=Release \
-DGCC_INSTALL_PREFIX="/opt/gcc/" \
-DLLVM_INCLUDE_TESTS=FALSE \
-DLLVM_TARGETS_TO_BUILD="x86" \
-DLLVM_ENABLE_LTO=ON \
-DCMAKE_C_COMPILER="/opt/gcc/bin/gcc" \
-DCMAKE_CXX_COMPILER="/opt/gcc/bin/g++" \
-DCMAKE_C_FLAGS="${CFLAGS}" \
-DCMAKE_CXX_FLAGS="${CPPFLAGS}" \
-DCMAKE_C_LINK_FLAGS="${LDFLAGS}" \
-DCMAKE_CXX_LINK_FLAGS="${LDFLAGS} -L$/opt/gcc/lib64 -Wl,-rpath,$/opt/gcc/lib64"

clang -v的输出:

clang version 9.0.1 
Target: x86_64-unknown-linux-gnu
Thread model: posix

默认目标与我的自定义GCC目标不匹配。

如果不手动指定-target x86_64-mytoolchain-linux-gnu,我将无法编译任何C ++。如果我指定它,那么它将自动查找所有适当的include和lib。一切正常。

问题

当我从源代码编译clang时,如何指定默认情况下将使用的目标?看来我唯一的控制权是“ x86”。

gcc cmake compiler-construction g++ clang
1个回答
0
投票

结果是默认目标由LLVM在编译过程中决定。

构建LLVM时指定此:

-DLLVM_DEFAULT_TARGET_TRIPLE="x86_64-mytoolchain-linux-gnu"

现在编译clang时,clang -v的输出:

clang version 9.0.1 
Target: x86_64-mytoolchain-linux-gnu
Thread model: posix
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.