1.创建一个新的文件夹,在文件夹下创建两个文件:
main.c,内容如下:
#include <stdio.h>
int main()
{
printf("Hello World from t1 Main!\n");
return 0;
}
CMakeLists.txt,内容如下:
PROJECT(HELLO)
SET(SRC_LIST main.c)
MESSAGE(STATUS "This is BINARY dir" ${HELLO_BINARY_DIR})
MESSAGE(STATUS "This is SOURCE dir" ${HELLO_SOURCE_DIR})
ADD_EXECUTABLE(hello ${SRC_LIST}) //原书编辑此处有错
结果如下:
2.开始构建
cmake .
make
结果如下:
生成的文件如下:
3.执行结果
4.CMakeLists.txt文件解释
PROJECT指令:
PROJECT(projectname [CXX] [C] [Java])
a.定义了工程的名称,说明工程支持的语言.
b.隐式定义了两个cmake变量:
<projectname>_BINARY_DIR 和 <projectname>_SOURCE_DIRSET
SET指令:
SET(VAR [VALUE] [CACHE TYPE DOCSTRING [FORCE]])
用来显式定义变量
MESSAGE指令:
MESSAGE([SEND_ERROR | STATUS | FATAL_ERROR] "message to display"
...)
用于向终端输出用户定义信息,包括三种类型:
a.SEND_ERROR:产生错误,生成过程被跳过.
b.SATUS.输出前缀位-的信息.
c.FATAL_ERROR:立即终止所有cmake过程.
ADD_EXECUTABLE指令:
ADD_EXECUTABLE(hello ${SRC_LIST})
定义了这个工程会生成一个文件名为 hello 的可执行文件,相关的源文件是 SRC_LIST 中
定义的源文件列表