CMake安装后怎么完成首次构建?

风瑶姑娘_8596

风瑶姑娘_8596

2026-08-08

695人浏览

原创

cmake ..报错“no cmake_cxx_compiler could be found”说明cmake未找到c++编译器,需先安装g++或cl并确保path包含其路径,或显式指定-dcmake_cxx_compiler;add_executable源文件路径必须严格相对于cmakelists.txt所在目录。

cmake安装后怎么完成首次构建?

直接运行 cmake 命令不报错,且能生成 Makefile 或构建目录内容,就说明首次构建流程走通了——但绝大多数人卡在 add_executable() 参数写错或源文件路径没对齐这一步。

cmake .. 报错“no CMAKE_CXX_COMPILER could be found”

这是新手最常遇到的阻断性错误,本质是 CMake 没找到可用的 C++ 编译器,不是 CMake 本身装错了。

  • 先确认系统已安装编译器:g++ --version(Linux/macOS)或 cl(Windows VS 工具链)
  • 如果没装,Ubuntu/Debian 执行 sudo apt install build-essential;CentOS/RHEL 用 sudo yum groupinstall "Development Tools"
  • 若已装但 CMake 还是找不到,显式指定编译器:cmake -DCMAKE_CXX_COMPILER=g++ ..
  • 注意:这个错误和 CMakeLists.txt 内容无关,不用急着改脚本

add_executable() 为什么总提示“source file not found”

根本原因是 add_executable() 的第二个及后续参数必须是相对于 CMakeLists.txt 所在目录的**真实路径**,不是 glob 模式,也不自动递归。

C++14
C++14

C++14 对 C++11 的修正与增强版本,适合旧系统维护和较老工具链兼容。

下载
  • 错误写法:add_executable(myapp *.cpp) → CMake 不展开通配符
  • 错误写法:add_executable(myapp src/main.cpp) 但实际文件在 ./main.cpp → 路径不匹配
  • 正确做法:把源文件和 CMakeLists.txt 放同一目录,或用 ${CMAKE_CURRENT_SOURCE_DIR} 显式拼接,例如:add_executable(myapp ${CMAKE_CURRENT_SOURCE_DIR}/src/main.cpp)
  • 小技巧:用 message(STATUS "SOURCES: ${SOURCES}") 打印变量值,验证路径是否如你所想

cmake --build . 提示“No rule to make target”

说明生成阶段(cmake ..)看似成功,但实际没产出有效的构建目标,常见于 project() 和 add_executable() 之间缺了关键设置。

  • 检查 project() 是否声明了语言,比如 project(hello LANGUAGES CXX);没写 LANGUAGES 时,CMake 可能默认只启用 C,导致 .cpp 文件被忽略
  • 确认 add_executable() 的第一个参数(目标名)是合法标识符:不能含 /、空格、点号,比如 add_executable(my.app main.cpp) 会失败
  • Linux/macOS 下构建后可执行文件默认生成在当前构建目录(如 build/),不是源码目录,别在源码目录里找 ./myapp
  • Windows + MSVC 时,cmake --build . 默认调用 msbuild,若没装 VS 或 Build Tools,会静默失败——此时换用 cmake --build . --verbose 看真实报错

最容易被忽略的一点:CMake 不会自动 reload CMakeLists.txt。改完脚本后,必须删掉整个构建目录(或至少删掉 CMakeCache.txt 和 CMakeFiles/)再重新运行 cmake ..,否则旧缓存可能掩盖新问题。

相关专题

更多
C++ 跨平台开发
C++ 跨平台开发

本专题聚焦 C++ 在跨平台应用与工程构建中的实战应用,系统讲解 CMake 构建系统、跨平台编译配置、第三方库集成、调试技巧、静态与动态链接库管理等核心知识。通过实战案例(如跨平台工具开发、Linux与Windows编译兼容性项目),帮助学习者掌握 从环境配置到完整跨平台构建的开发能力。

2025.10.17

6726

15

c++  cmake用法
c++ cmake用法

本专题整合了c++ cmake用法相关教程,阅读专题下面的文章了解更多详细内容。

2025.10.23

1611

14

C++ 编译构建系统与CMake实战
C++ 编译构建系统与CMake实战

本专题聚焦 C++ 项目的编译与构建体系,系统讲解 CMake 的核心语法、项目结构设计、库与依赖管理、跨平台构建、调试与发布配置。通过完整项目示例,帮助开发者掌握 从源码到可执行程序的工程化构建流程,提升 C++ 项目在实际开发中的可维护性与扩展性。

2025.12.13

354

18

Playwright 测试失败怎么办
Playwright 测试失败怎么办

Playwright测试失败专题汇集超时、定位器匹配、浏览器提前关闭、依赖与插件配置、文件上传、SSL及Docker启动等故障文章,并介绍通过截图、报告和Trace定位错误。

2026.10.21

20

15

Playwright 页面操作指南
Playwright 页面操作指南

Playwright页面操作专题汇集元素定位、点击与输入、等待响应、多页面切换、Iframe、事件监听及文件处理的已审核文章,便于按操作场景查阅示例与常见问题。

2026.10.21

0

16

Playwright 入门教程
Playwright 入门教程

Playwright入门专题汇集测试框架安装、VS Code配置、录制脚本、编写首个用例、运行调试及查看报告的已审核文章,帮助初学者搭建端到端测试流程。

2026.10.21

0

16

OpenJDK JVM参数怎么调优
OpenJDK JVM参数怎么调优

Java应用运行缓慢,如何调整JVM参数?本专题介绍OpenJDK JVM性能调优的基本流程,涵盖性能指标确认、运行数据采集、内存配置和垃圾回收分析,帮助你先定位瓶颈,再通过对照测试验证效果,避免直接套用参数而影响应用稳定性。

2026.10.16

120

10

OpenJDK怎么配置Java开发环境
OpenJDK怎么配置Java开发环境

怎样用OpenJDK搭建开发环境?本专题介绍版本选择、下载安装、环境变量配置和编译运行验证,帮助你理清JDK的作用及基本配置流程,并通过简单程序检查环境是否可用,为后续项目开发做好准备。

2026.10.16

80

10

OpenJDK怎么部署Java应用
OpenJDK怎么部署Java应用

Java项目开发完成后,怎样部署到目标环境并正常运行?本专题介绍OpenJDK应用部署流程,涵盖运行环境准备、版本兼容检查、应用打包、启动参数配置和日志查看,帮助你理清部署前后的操作顺序,减少环境差异造成的运行问题。

2026.10.16

60

10

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
LLVM CMake构建指南
LLVM CMake构建指南

共0课时 | 0人学习

LLVM入门手册
LLVM入门手册

共0课时 | 0人学习

CMake 与 Conan 集成实践
CMake 与 Conan 集成实践

共0课时 | 0人学习