Windows 11下使用MinGW而非VS编译安装gtest的问题
解决方法
1. 清理现有构建目录
先删除c:\MinGW\googletest\build下的所有文件,避免残留的MSVC构建配置干扰后续操作。
2. 指定MinGW生成器与编译器重新运行CMake
在PowerShell中进入干净的build目录,执行以下命令:
cmake -G "MinGW Makefiles" -DCMAKE_C_COMPILER=gcc.exe -DCMAKE_CXX_COMPILER=g++.exe ..
-G "MinGW Makefiles":强制CMake使用MinGW的Makefile生成规则,而非Visual Studio的项目文件-DCMAKE_C_COMPILER/-DCMAKE_CXX_COMPILER:明确指定使用MinGW的gcc和g++编译器,避免CMake优先识别到MSVC
3. 编译gtest库
执行MinGW的编译命令:
mingw32-make
如果你的MinGW是64位版本,可能需要使用mingw64-make,以实际安装的命令为准
4. 全局安装(可选)
若希望gtest库能被全局调用,执行安装命令将头文件和库文件复制到MinGW的默认目录:
mingw32-make install
完成后,头文件会被放到C:\MinGW\include,库文件会被放到C:\MinGW\lib。
5. 编译并运行测试程序
现在可以用你熟悉的命令编译测试代码:
g++ -std=c++17 -pthread ./test.cpp -lgtest -lgtest_main ./a.exe
注意事项
确保MinGW的bin目录(如C:\MinGW\bin)在系统PATH中的优先级高于Visual Studio的工具链路径,避免系统优先调用MSVC相关命令。
内容的提问来源于stack exchange,提问作者user18184114
相关产品推荐
相关产品推荐

