关于C ++:在CMake中设置默认编译器

Setting default compiler in CMake

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

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

没有成功。 如何将MinGW设置为默认编译器,这样我就不必担心在CMakeLists中设置编译器了吗?


在Windows下,除非调用CMake时显式指定了生成器,否则CMake使用最新的Visual Studio安装作为默认生成器。此行为是硬编码的,不能更改。

解决方法是使用标题为cmake.bat的批处理包装脚本,其内容如下:

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

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

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


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

1
cmake -G"MinGW Makefiles" .

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

作为一种替代方法,尤其是当您不熟悉CMake时,请在Windows下使用GUI版本(运行cmake-gui,不带参数,而不是cmake)。

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

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

一旦配置完成并且没有错误,您可以点击" generate"来创建您的makefile或项目文件。要稍后进行更新,可以再次使用cmake-gui或仅使用常规命令行版本cmake


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