Gcc 忍者不';不使用CC和CXX吗?

Gcc 忍者不';不使用CC和CXX吗?,gcc,clang,ninja,Gcc,Clang,Ninja,我正在和忍者一起编译Tesseract。Clang有一些链接问题,但gcc可以工作。我使用gcc导出CC和CXX,并且make-j8运行良好。但是,Ninja(使用/build文件夹中给定的脚本)仍然使用clang。如何使用给定的.Ninja脚本在Ninja中指定编译器?方法1: 忍者是一个非常简单和强大的构建系统。您只需查看build.ninja和rules.ninja文件即可进行相关更改 build.ninja包含构建项目所需运行的构建命令 规则。忍者包含规则、CC、CXX和其他标志。为了更

我正在和忍者一起编译Tesseract。Clang有一些链接问题,但gcc可以工作。我使用gcc导出CC和CXX,并且
make-j8
运行良好。但是,Ninja(使用
/build
文件夹中给定的脚本)仍然使用clang。如何使用给定的
.Ninja
脚本在Ninja中指定编译器?

方法1: 忍者是一个非常简单和强大的构建系统。您只需查看
build.ninja
rules.ninja
文件即可进行相关更改

build.ninja
包含构建项目所需运行的构建命令

规则。忍者
包含规则、
CC
CXX
和其他标志。为了更改特定规则的编译器,您需要在
rules.ninja
中对该目标执行
grep
。可能有几个规则你想改变,在这种情况下,你可以使用一些bash魔法

方法2 总之,不建议更改
*。ninja
文件,因为它们是由cmake生成的。因此,您应该修改编译目录中
CMakeCache.txt
文件中的编译器路径(
cmakecxx\u编译器
cmakecxu编译器
标志)

方法3 完全删除生成目录,然后在调用cmake时导出
CC
CXX
标志或传递
-DCMAKE\u CXX\u编译器:FILEPATH=/path/to/c++编译器-DCMAKE\u c\u编译器=/path/to/c-COMPILER
。e、 g

cmake -GNinja \
-DCMAKE_CXX_COMPILER:FILEPATH=/path/to/c++compiler \
-DCMAKE_C_COMPILER=/path/to/c-compiler \
... <other-flags>
<path-to-llvm-repo>
cmake-GNinja\
-DCMAKE_CXX_编译器:FILEPATH=/path/to/c++编译器\
-DCMAKE_C_COMPILER=/path/to/C-COMPILER\
... 

我推荐方法3,YMMV。hth.

从中判断,您必须查看Ninja文件并推断要更改什么-它不像
make
,似乎没有默认宏等。它将自己描述为构建的“汇编程序”。它希望使用其他一些工具来生成它的控制文件。如何更改编译器取决于文件的生成方式。你可以手动操作;我已经用过方法3了。不过,我只是想寻求一种不重写
ninja
文件的方法。