CMake Error:check_source_compiles: CXX: needs to be enabled before use.已解决

在windows中使用安装的msys2-x86_64-20240113.exe下的C:/msys64/mingw64/bin/中的g++.exe和gcc.exe出现标题中报错

经搜索有类似错误:

bash 复制代码
CMake Error at /usr/share/cmake/Modules/Internal/CheckFlagCommonConfig.cmake:58 (message):
  check_compiler_flag: C: needs to be enabled before use.

有提示解决办法

You should either check if C is enabled in the CMakeLists.txt here before using check_c_compiler_flag , of just enable C with project("bitpit" C CXX) at the top of the file.

也即在根CMakeLists.txt文件中的project中的工程名后添加C、CXX,分别对应C、C++编译器

project(Test)修改为project(Test C CXX)

且应添加各指定编译器设置:

复制代码
set(CMAKE_AR  C:/msys64/mingw64/bin/ar.exe)
set(CMAKE_C_COMPILER  C:/msys64/mingw64/bin/gcc.exe)
set(CMAKE_CXX_COMPILER  C:/msys64/mingw64/bin/g++.exe)
相关推荐
xie0510_几秒前
string模拟实现
开发语言·c++·算法
雪域迷影24 分钟前
C++17中使用inline修饰类的静态成员变量
开发语言·c++·inline static·类静态成员变量
星火开发设计25 分钟前
共用体 union:节省内存的特殊数据类型
java·开发语言·数据库·c++·算法·内存
「QT(C++)开发工程师」2 小时前
C++ 多种单例模式
java·c++·单例模式
五_谷_丰_登2 小时前
C++模板元编程学习——模板简介
c++·stl·c++标准库
2301_811232983 小时前
C++中的契约编程
开发语言·c++·算法
2401_829004023 小时前
C++中的访问者模式
开发语言·c++·算法
D_evil__3 小时前
【Effective Modern C++】第三章 转向现代C++:13. 优先选用const_iterator,而非iterator
c++
赵萱婷3 小时前
C++17 nodiscard属性深度解析
开发语言·c++·经验分享