---<Cmake 实践>---
---Ubuntu 14.04
1、创建一个cmake文件目录
1 mkdir -p ~/cmake
2、在cmake文件下创建t1子目录
1 cd ~/cmake 2 mkdir t1 3 cd t1
3、在t1子目录下创建main.c 和 CMakeLists.txt(注意:文件名大小写!)
1 touch main.c 2 touch CMakeListst.txt
其中,main.c文件内容如下:
打开main.c文件:
gedit main.c
1 //main.c 2 3 #include<stdio.h> 4 int main() 5 { 6 printf("Hello World from t1 Main! "); 7 return 0; 8 }
其中,CMakeLists.txt内容如下:
gedit CMakeLists.txt
1 PROJECT(HELLO) #定义工程名称 2 SET(SRC_LIST main.c) #SET指令用于显式定义变量 3 MESSAGE(STATUS "This is BINARY dir" ${HELLO_BINARY_DIR}) #STATUS,输出前缀为-的信息 4 MESSAGE(STATUS "This is SOURCE dir" ${HELLO_SOURCE_DIR}) 5 ADD_EXECUTABLE(hello ${SRC_LIST}) #工程生成一个文件名为hello的可执行文件
另外,CMakeLists.txt可简化为:
1 PROJECT(HELLO) 2 ADD_EXECUTABLE(hello ,main.c)
4、开始构建
当main.c文件及CMakeLists.txt文件创建完成后,进行构建工程,在该目录下运行:
1 cmake . (注意命令后面的点号,代表的是本目录)
运行cmake . 指令后,在目录下,可以看到有CMakeFiles、CMakeCache.txt、cmake_install.cmake等文件,并生成了Makefile。
之后,在该目录下输入:make 命令
这时候,目标文件hello已经构建完成,位于当前目录,运行下述指令:
./hello
得到输出: Hello World from t1 Main!
5、在cmake文件下创建t2目录
将t1工程下的main.c 与 CMakeLists.txt 拷贝到t2目录下
6、在目录t2下添加src文件夹
1 cd ~/cmake/t2 2 mkdir src 3 mv main.c src
7、在文件夹src下创建一个CMakeLists.txt,添加内容如下:
ADD_EXECUTABLE(hello main.c)
8、在t2目录下(原从t1中拷贝的)CMakeLists.txt修改为:
1 PROJECT(HELLO) 2 ADD_SUBDIRECTORY(src bin)
9、在t2文件路径下,进行编译:
1 cmake . 2 make