流浪的加菲
2023-12-05 21:59 deepin
CMake官网:www.cmake.org
Reply Like 1 View the author
CMake官网:www.cmake.org
学习了
感谢分享。
最近在学着用CMake,这教程及时呀
改动cmake很容易引发各种奇奇怪怪的小问题,所以我不学, 让同事来解决~
同是 cmake 玩家,但建议不用大写指令
同是 cmake 玩家,但建议不用大写指令
哈哈,我在一楼放置了使用规范,规范里第一条就是小写🤧
纯搬运的内部分享的资料,哈哈😂
Popular Events
More
一:说明
(1)make与makefile
(2)CMake介绍
(3)QMake介绍
(4)QMake和CMake有什么区别?
二:CMake基础指令学习
(1)CMake一个hello,world!
1、写一个hello,world!
2、写CMakeList.txt
3、使⽤cmake,⽣成makefile⽂件
4、使⽤make命令编译
5、最终生成了可执行文件hello
(2)CMake⼀个HelloWord-的基础语法介绍
1、PROJECT关键字
2、MESSAGE关键字
该CMakeLists.txt定义了两个CMAKE的变量:
_BINARY_DIR,本例中是 HELLO_BINARY_DIR
_SOURCE_DIR,本例中是 HELLO_SOURCE_DIR
就可以直接使⽤者两个变量,当前都指向当前的⼯作⽬录,后⾯会讲外部编译。
问题:如果改了⼯程名,这两个变量名也会改变。
解决:⼜定义两个预定义变量:PROJECT_BINARY_DIR和PROJECT_SOURCE_DIR,这两个变量和HELLO_BINARY_DIR,HELLO_SOURCE_DIR是⼀致的。所以改了⼯程名也没有关系。
3、SET关键字
4、ADD_EXECUTABLE关键字
5、语法的基本原则与注意事项
三、内部构建与外部构建
外部构建方式举例
(1)让hello,world!看起来更像一个工程
最简单的目录树结构:
1、工程CMakeLists.txt
2、src下的CMakeLists.txt
3、ADD_SUBDIRECTORY指令
4、更改二进制的保存路径
(2)安装Hello,world!
1、安装文件COPYRIGHT和README
2、安装脚本runhello.sh
3、安装 doc 中的 hello.txt
4、安装过程(在build路径中)
5、最后的项目CMakeLists.txt内容
四、静态库与动态库的构建
(1)任务
(2)构建实例
目录树结构:
1、hello.h内容
2、hello.cpp内容
3、项目中CMakeLists.txt的内容
4、lib下的 CMakeLists.txt内容
可以编译运行安装一下试试。在bin目录下应该会有libhello.so
5、ADD_LIBRARY指令
(3)同时构建静态库和动态库
1、SET_TARGET_PROPERTIES指令
2、动态库的版本号
CMakeLists.txt 插⼊如下:
SET_TARGET_PROPERTIES(hello PROPERTIES VERSION 1.2 SOVERSION 1)
VERSION 指代动态库版本,SOVERSION 指代 API 版本。
3、安装共享库和头文件
4、最后lib下的CMakeLists.txt内容
(4)使⽤外部共享库和头⽂件
1、准备⼯作,新建⼀个⽬录来使⽤外部共享库和头⽂件
2、main.cpp内容
3、解决:make后头⽂件找不到的问题
4、解决:找到引⽤的函数问题
5、查看main的链接情况
6、链接静态库
五:环境变量设置