Ниндзя не использует CC и CXX? - PullRequest
1 голос
/ 15 января 2020

Я собираю Тессеракт с ниндзя. У Clang есть проблема с линковкой, но g cc работает. Я экспортирую CC и CXX с g cc и make -j8 работает нормально. Тем не менее, ниндзя (используя данный скрипт в папке /build) все еще использует clang. Как я могу указать компилятор в ниндзя, используя данный .ninja скрипт?

1 Ответ

2 голосов
/ 18 января 2020

Method1:

ninja - очень упрощенная и мощная система сборки. Вам нужно только просмотреть файлы build.ninja и rules.ninja, чтобы внести соответствующие изменения.

build.ninja содержит команды сборки, которые необходимо выполнить для построения проекта.

rules.ninja содержит правила, CC, CXX и другие флаги. Чтобы изменить компилятор для определенного c правила, вам нужно grep для этой цели в rules.ninja. Возможно, вы захотите изменить несколько правил, в этом случае вы можете использовать bash magi c.

Method2

Все сказанное, изменение *.ninja файлов не является рекомендуется, так как они генерируются cmake. Поэтому вам следует изменить пути к компилятору (CMAKE_CXX_COMPILER, CMAKE_C_COMPILER flags) в файле CMakeCache.txt в каталоге сборки.

Method3

Полностью удалить каталог сборки, а затем экспортировать CC и CXX помечают или передают -DCMAKE_CXX_COMPILER:FILEPATH=/path/to/c++compiler -DCMAKE_C_COMPILER=/path/to/c-compiler при вызове cmake. например,

cmake -GNinja \
-DCMAKE_CXX_COMPILER:FILEPATH=/path/to/c++compiler \
-DCMAKE_C_COMPILER=/path/to/c-compiler \
... <other-flags>
<path-to-llvm-repo>

Я бы порекомендовал Method3, YMMV. НТН.

...