在 CMake 中设置默认编译器

问题描述 投票:0回答:3

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

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

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

c++ cmake
3个回答
35
投票

CMake 3.15 或更高版本支持通过设置环境变量 CMAKE_GENERATOR 来覆盖默认生成器。

例如,使用PowerShell,按以下方式设置环境变量,使MinGW成为默认生成器:

$Env:CMAKE_GENERATOR = 'MinGW Makefiles'

对于较旧的 CMake 版本(< 3.15), CMake 使用最新的 Visual Studio 安装作为默认生成器,除非在调用 CMake 时显式指定生成器。此行为是硬编码的且无法更改。

作为解决方法,您可以使用标题为

cmake.cmd
的批处理包装脚本,其中包含以下内容:

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

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

cmake.exe

该脚本使用 MinGW 作为生成器调用

cmake.exe
,并将所有其他参数转发给它。


23
投票

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

cmake -G "MinGW Makefiles" .

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

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

cmake-gui
,而不是
cmake
)。

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

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

配置完成且没有错误后,您可以点击“生成”来创建 makefile 或项目文件。要稍后更新这些,您可以再次使用

cmake-gui
或仅使用常用的命令行版本
cmake


4
投票

使用 CMake 3.15 或更高版本,您可以设置

CMAKE_GENERATOR
环境变量来指定要在系统上使用的默认生成器。

© www.soinside.com 2019 - 2024. All rights reserved.