首先要写一个CMakeLists.txt,通过执行当前目录下的此文件来生成Makefile文件,再执行Makefile来生产目标文件
PROJECT关键字
PROJECT (HELLO) // 工程名
PROJECT (HELLO CXX) //其后面还可以跟语言 C++ ---> CXX
SET关键字
用来显示指定变量
SET(SRC_LIST main.cpp) //SRC_LIST包含了变量 main.cpp
MESSAGE关键字
向终端输出用户自定义的信息
- SEND_ERROR:产生错误,生成过程被跳过
- STATUS:输出前缀为 - 的信息
- FATAL_ERROR:立刻终止所有cmake过程
MESSAGE(STATUS "this is source dir " ${HELLO_SOURCE_DIR})
ADD_EXECUTABLE关键字
ADD_EXECUTABLE(hello ${SRC_LIST})
上述所有代码:
PROJECT (HELLO CXX)
SET(SRC_LIST main.cpp)
MESSAGE(STATUS "this is source dir " ${HELLO_SOURCE_DIR})
ADD_EXECUTABLE(hello ${SRC_LIST})
也可以简化成:
PROJECT (HELLO CXX)
ADD_EXECUTABLE(hello main.cpp)
注意:工程名HELLO和可执行文件名hello没有关系
外部构建:
创建一个build文件夹,并在此文件夹中执行 cmake ..
命令,以此构建过程,同时也方便清理
工程化管理
注:以下文件夹需要手动创建
- src:存放项目的源代码
- doc:存放项目的说明文档
- 添加COPYRIGHT和README(版权和说明)
- 添加一个脚本 xxx.sh,用来调用可执行文件
- bin:存放构建后的目标文件
- 将doc目录的内容以及 COPYRIGHT/README 存放在 /usr/share/doc/cmake下
ADD_SUBDIRECTORY关键字:
ADD_SUBDIRECTORY(src bin):将bin目录添加到src目录