使用cmake强制使用最新的gcc

Her*_*nan 3 gcc g++ version cmake

我正在将一个小应用程序部署到需要编译的几个不同系统(mac,linux,linux64).我想告诉cmake在特定系统中可用的最新gcc.例如,Mac 10.6具有gcc 4.0和gcc 4.2(默认值).但是有些用户也通过MacPorts安装了gcc 4.4(它不是默认设置).在这种情况下,我希望cmake使用gcc44.在其他Linux系统中,最新的gcc是4.4或4.5.实现这一目标的更强大的方法是什么?

谢谢,

H

sak*_*kra 8

CMake的荣誉的环境变量CCCXX在检测到所述C和C++编译器使用.例如,如果这些变量指向clang,它将默认使用clang:

$ export CC=/usr/bin/clang
$ export CXX=/usr/bin/clang++
$ cmake ..
-- The C compiler identification is Clang
-- The CXX compiler identification is Clang
-- Check for working C compiler: /usr/bin/clang
-- Check for working C compiler: /usr/bin/clang -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/clang++
-- Check for working CXX compiler: /usr/bin/clang++ -- works
...
Run Code Online (Sandbox Code Playgroud)

您可以将这些定义为指向首选编译器的系统范围的环境变量,也可以编写一个小的shell包装脚本来测试多个编译器的可用性,并在调用cmake之前相应地设置变量.

  • 但有没有办法在我的CMakeLists文件中指定编译器应该是版本大于某个版本的`gcc`? (2认同)