新建工程并用cmake编译和安装http://blog.csdn.net/ktigerhero3/article/details/69379767
本文介绍新建标准的cmake工程及使用cmake编译、CMakeLists的编写、编译和安装标准的cmake工程。
1.新建cmake工程
(1)cmake工程目录结构
在cmake工程中有不同的文件夹。文件夹结构通常如下。
(2)文件夹介绍
src 源文件所在位置的目录
include 头文件所在位置的目录
build 编译生成的文件所在的目录
hellofunlib文件夹 为hellofun库函数源文件所在文件夹
bin 生成的主函数所在的文件夹
lib 生成的库函数所在文件夹
2.实现编译主函数和库函数并放到指定文件夹
任务:
(1)编译main函数生成cmakehello可执行文件,并放在/build/bin文件下
(2)编译hellofuc.c生成 动态链接库函数文件hellofuc.so,并放在/build/lib文件夹下。
实现:
(a)顶层/CMakeLists.txt
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
(b)主函数/src/main.c
- 1
- 2
- 3
- 4
- 5
- 6
(c)src文件夹src/CMakeLists.txt
- 1
(d)库函数文件夹函数/hellofunlib/hellofun.c
- 1
- 2
- 3
- 4
- 5
- 6
(e)库函数文件夹头文件/hellofunlib/hellofun.h
- 1
- 2
- 3
- 4
- 5
(f)库函数文件夹hellofunlib/CMakeLists.txt
- 1
最后切换到/bulid目录下
输入命令
- 1
- 1
发现在/build/src目录下生成可执行文件cmakehello
在/build/bin目录下生成库函数文件libhellofun.so
3.安装库函数和可执行文件到指定文件夹
任务:
将生成可执行文件cmaketest安装到/home/programFiles/bin
生成库函数文件libhellofun.so 安装到/home/programFiles/lib
(a)在顶层 /CMakeLists.txt
加入set(CMAKE_INSTALL_PREFIX /home/programFiles)
(b)在src文件夹 src/CMakeLists.txt
加入
- 1
(c)在库函数文件夹hellofunlib/CMakeLists.txt
加入
- 1
然后切换到build文件夹下
- 1
- 2
- 3
可以发现
生成可执行文件cmaketest已经安装到/home/programFiles/bin
库函数文件libhellofun.so 已经安装到/home/programFiles/lib