Cmake 自学笔记(linux)(四)
2017-10-27 17:21
176 查看
前言:观察文件夹下的文件,发现源代码(main .h .c)放在同一个路径下,还是不太正规,怎么办呢?分开放呗…….(当然,分开的这个过程由我们自己完成)
我们期望的结构:
即main.c在src下(src=source code),头文件和他的.c在库文件夹下。并且我们发现cmakelists多达三个,都需要我们去自己写,但是并不困难。
1.在主文件夹下新建src,libhello,build三个文件夹,以及一个顶层cmakelists.txt.然后在src中新建一个main和一个cmakelists,在libhello中新建一个hello.c和一个hello.h,还有一个cmakelists。
2.修改顶层cmakelists的内容
说明:使用 add_subdirectory 告诉cmake去子目录寻找新的CMakeList.txt 子文件,括号中的内容就是子cmakelists所在的文件夹
3.修改src中的cmakelists的内容:
说明:include_directories,用来指明头文件所在的路径。注意,PROJECT_SOURCE_DIR必须大写。另外,说下我个人对./的理解,./我理解为该cmakelists文件所在的当前路径,而不是这个项目的根目录。而项目的根目录是${PROJECT_SOURCE_DIR}.
4.修改libhello中的cmakelists的内容:
很简单,就是一个添加库的命令。
5.全部完成后,在build文件夹下运行cmake.. ,然后运行make,此时注意生成的可执行文件不再是在build下,而是在build里面的src中。因为build中的目录默认和源代码中结构一样,源码中的目录是src和libhello,所以在build中生成了src和libhello。
我们期望的结构:
即main.c在src下(src=source code),头文件和他的.c在库文件夹下。并且我们发现cmakelists多达三个,都需要我们去自己写,但是并不困难。
1.在主文件夹下新建src,libhello,build三个文件夹,以及一个顶层cmakelists.txt.然后在src中新建一个main和一个cmakelists,在libhello中新建一个hello.c和一个hello.h,还有一个cmakelists。
2.修改顶层cmakelists的内容
说明:使用 add_subdirectory 告诉cmake去子目录寻找新的CMakeList.txt 子文件,括号中的内容就是子cmakelists所在的文件夹
3.修改src中的cmakelists的内容:
说明:include_directories,用来指明头文件所在的路径。注意,PROJECT_SOURCE_DIR必须大写。另外,说下我个人对./的理解,./我理解为该cmakelists文件所在的当前路径,而不是这个项目的根目录。而项目的根目录是${PROJECT_SOURCE_DIR}.
4.修改libhello中的cmakelists的内容:
很简单,就是一个添加库的命令。
5.全部完成后,在build文件夹下运行cmake.. ,然后运行make,此时注意生成的可执行文件不再是在build下,而是在build里面的src中。因为build中的目录默认和源代码中结构一样,源码中的目录是src和libhello,所以在build中生成了src和libhello。
相关文章推荐
- Cmake 自学笔记(linux)(五)
- Cmake 自学笔记(linux)(三)
- Cmake 自学笔记(linux)(二)
- Cmake 自学笔记(linux)(一)
- Cmake 自学笔记(linux)(六)
- 红帽 LINUX 6自学笔记第二章(5) …
- 红帽 LINUX 6自学笔记(…
- 自己整理的LINUX自学笔记
- linux自学笔记
- linux自学笔记--ansible
- Linux自学笔记——计算机基础以及命令帮助的获取
- Linux自学笔记:01_Linux基础介绍
- linux 自学笔记 (七) linux引导流程解析
- Linux自学笔记——sudo命令
- 红帽 LINUX 6自学笔记第三章(3) …
- Linux C++ 自学笔记
- linux 中断下半部自学笔记
- linux自学笔记(2)
- Linux 自学笔记——内核管理初步及编译
- 【linux管道】自学笔记