我在WinXP SP3上使用CMake版本2.8。每当我运行CMakeLists脚本时,默认情况下CMake使用Visual Studio 10编译器。我尝试过:
SET( CMAKE_CXX_COMPILER "C:/MinGW/bin/g++" )
没有成功。我如何设置MinGW作为我的默认编译器,这样我就不必担心在CMakeLists中设置编译器了?
zte4gxcn1#
CMake 3.15或更高版本支持通过设置环境变量CMAKE_GENERATOR来覆盖默认生成器。例如,使用PowerShell,以以下方式设置环境变量,以使MinGW成为默认生成器:
$Env:CMAKE_GENERATOR = 'MinGW Makefiles'
对于旧的CMake版本(〈3.15),CMake uses the newest Visual Studio installation作为默认生成器,除非在调用CMake时显式指定生成器。此行为是硬编码的,无法更改。作为一种解决方法,您可以使用名为cmake.cmd的批处理 Package 脚本,其中包含以下内容:
cmake.cmd
@cmake.exe -G "MinGW Makefiles" %*
该脚本应放置在系统PATH上的目录中,并应优先于CMake可执行文件cmake.exe。脚本调用cmake.exe,MinGW作为生成器,并将所有其他参数转发给它。
cmake.exe
wvt8vs2t2#
你只需要设置工具链/输出格式一次,通常你会在第一次运行cmake的时候这样做:
cmake -G "MinGW Makefiles" .
您可以使用自己的参数(如果有的话)和/或源路径来代替点。作为一种替代方法,特别是当您是CMake新手时,请在windows下使用GUI版本(运行不带参数的cmake-gui,而不是cmake)。打开后,设置路径并点击“配置”。如果没有编译器设置,它会要求你选择一个(否则你必须清除该高速缓存才能使它重新出现)。更新后的配置值将显示为红色,并且还允许您使用常见的Windows对话框选择文件和路径。一旦配置完成并且没有错误,你可以点击“generate”来创建你的makefile或者项目文件,如果以后要更新这些文件,你可以再次使用cmake-gui或者使用常用的命令行版本cmake。
cmake-gui
cmake
fnvucqvd3#
使用CMake 3.15或更高版本,您可以设置CMAKE_GENERATOR环境变量来指定要在系统上使用的默认生成器。
CMAKE_GENERATOR
3条答案
按热度按时间zte4gxcn1#
CMake 3.15或更高版本支持通过设置环境变量CMAKE_GENERATOR来覆盖默认生成器。
例如,使用PowerShell,以以下方式设置环境变量,以使MinGW成为默认生成器:
对于旧的CMake版本(〈3.15),CMake uses the newest Visual Studio installation作为默认生成器,除非在调用CMake时显式指定生成器。此行为是硬编码的,无法更改。
作为一种解决方法,您可以使用名为
cmake.cmd
的批处理 Package 脚本,其中包含以下内容:该脚本应放置在系统PATH上的目录中,并应优先于CMake可执行文件
cmake.exe
。脚本调用
cmake.exe
,MinGW作为生成器,并将所有其他参数转发给它。wvt8vs2t2#
你只需要设置工具链/输出格式一次,通常你会在第一次运行cmake的时候这样做:
您可以使用自己的参数(如果有的话)和/或源路径来代替点。
作为一种替代方法,特别是当您是CMake新手时,请在windows下使用GUI版本(运行不带参数的
cmake-gui
,而不是cmake
)。打开后,设置路径并点击“配置”。如果没有编译器设置,它会要求你选择一个(否则你必须清除该高速缓存才能使它重新出现)。
更新后的配置值将显示为红色,并且还允许您使用常见的Windows对话框选择文件和路径。
一旦配置完成并且没有错误,你可以点击“generate”来创建你的makefile或者项目文件,如果以后要更新这些文件,你可以再次使用
cmake-gui
或者使用常用的命令行版本cmake
。fnvucqvd3#
使用CMake 3.15或更高版本,您可以设置
CMAKE_GENERATOR
环境变量来指定要在系统上使用的默认生成器。