在CMake中设置默认编译器

时间:2011-08-16 16:49:29

标签: c++ compiler-construction cmake

我在WinXP SP3上使用CMake版本2.8。每当我默认运行我的CMakeLists脚本时,CMake使用Visual Studio 10编译器。我试过这样做:

SET( CMAKE_CXX_COMPILER "C:/MinGW/bin/g++" )

没有成功。如何将MinGW设置为我的默认编译器,以便我不必担心在CMakeLists中设置编译器?

3 个答案:

答案 0 :(得分:26)

在Windows CMake uses the newest Visual Studio installation下作为默认生成器,除非在调用CMake时明确指定了生成器。此行为是硬编码的,无法更改。

作为一种解决方法,您可以使用标题为cmake.bat的批量包装脚本,其中包含以下内容:

@cmake.exe -G "MinGW Makefiles" %*

脚本应放在系统PATH的目录中,并且应优先于CMake可执行文件cmake.exe

该脚本使用MinGW作为生成器调用cmake.exe并将所有其他参数转发给它。

答案 1 :(得分:14)

您只需设置一次工具链/输出格式,通常是在第一次运行cmake时执行此操作:

cmake -G "MinGW Makefiles" .

您可以使用自己的参数(如果有)和/或源的路径来代替点。

作为替代方案,尤其是当您刚接触CMake时,请使用Windows下的GUI版本(运行cmake-gui而不使用参数而不是cmake)。

打开后,设置路径并单击“配置”。如果没有编译器设置,它将要求您选择一个(否则您必须清除缓存以使其重新出现)。

更新的配置值将以红色显示,并且还允许您使用常用的Windows对话框选择文件和路径。

配置完成且没有错误后,您可以点击“生成”来创建makefile或项目文件。要在以后更新这些内容,您可以再次使用cmake-gui或只使用通常的命令行版本cmake

答案 2 :(得分:1)

对于CMake 3.15或更高版本,您可以设置CMAKE_GENERATOR环境变量以指定要在系统上使用的默认生成器。