林先森_007

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

---<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!\n");
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

 

 



posted on 2017-05-13 10:36  林先森_007  阅读(661)  评论(0编辑  收藏  举报