Проблема
Когда я компилирую g cc Я устанавливаю --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
Цель по умолчанию не совпадает мой пользовательский G CC target.
Я не могу скомпилировать C ++ без указания -target x86_64-mytoolchain-linux-gnu
вручную. Если я укажу это, то он автоматически найдет все подходящие включения и библиотеки. Все работает, как и ожидалось.
Вопрос
Когда я компилирую clang из источника, как я могу указать цель, которую он будет использовать по умолчанию? Кажется, единственный элемент управления, который у меня есть, это 'x86'.