没有合适的资源?快使用搜索试试~ 我知道了~
从零开始详细介绍CMake
资源推荐
资源详情
资源评论
说明
CMake安装
CMake⼀个HelloWord
CMake⼀个HelloWord-的语法介绍
PROJECT关键字
SET关键字
MESSAGE关键字
ADD_EXECUTABLE关键字
语法的基本原则
语法注意事项
内部构建和外部构建
外部构建⽅式举例
让Hello World看起来更像⼀个⼯程
将⽬标⽂件放⼊构建⽬录的 bin ⼦⽬录
ADD_SUBDIRECTORY 指令
更改⼆进制的保存路径
安装
如何安装HelloWord
安装⽂件COPYRIGHT和README
安装脚本runhello.sh
安装 doc 中的 hello.txt
安装过程
静态库和动态库的构建
构建实例
ADD_LIBRARY
同时构建静态和动态库
SET_TARGET_PROPERTIES
动态库的版本号
安装共享库和头⽂件
使⽤外部共享库和头⽂件
解决:make后头⽂件找不到的问题
解决:找到引⽤的函数问题
特殊的环境变量 CMAKE_INCLUDE_PATH 和 CMAKE_LIBRARY_PATH
本⼈所有视频和笔记都是免费分享给⼤家的,制作视频和笔记要花费⼤量的时间成本
我也有⽼婆和孩⼦要养,恳求各位观众⽼爷们有经济实⼒的稍微打赏⼀下⼩弟,但不强求,再⼀次感谢。
您的打赏,会让我今后有更⼤的动⼒,做出更优质的视频,感谢⼤家的⽀持
说明
cmake的定义是什么 ?-----⾼级编译配置⼯具
当多个⼈⽤不同的语⾔或者编译器开发⼀个项⽬,最终要输出⼀个可执⾏⽂件或者共享库(dll,so等等)这时候神
器就出现了-----CMake!
所有操作都是通过编译CMakeLists.txt来完成的—简单
官 ⽅⽹站是 www.cmake.org,可以通过访问官⽅⽹站获得更多关于 cmake 的信息
学习CMake的⽬的,为将来处理⼤型的C/C++/JAVA项⽬做准备
CMake安装
1、绝⼤多数的linux系统已经安装了CMake
2、Windows或某些没有安装过的linux系统,去http://www.cmake.org/HTML/Download.html 可以下载安装
CMake⼀个HelloWord
1、步骤⼀,写⼀个HelloWord
2、步骤⼆,写CMakeLists.txt
3、步骤三、使⽤cmake,⽣成makefile⽂件
#main.cpp
#include <iostream>
int main(){
std::cout << "hello word" << std::endl;
}
#CMakeLists.txt
PROJECT (HELLO)
SET(SRC_LIST main.cpp)
MESSAGE(STATUS "This is BINARY dir " ${HELLO_BINARY_DIR})
MESSAGE(STATUS "This is SOURCE dir "${HELLO_SOURCE_DIR})
ADD_EXECUTABLE(hello ${SRC_LIST})
cmake .
输出:
[root@localhost cmake]# cmake .
CMake Warning (dev) in CMakeLists.txt:
Syntax Warning in cmake code at
/root/cmake/CMakeLists.txt:7:37
Argument not separated from preceding token by whitespace.
binary二进制的,可执行的
cmake代码中的语法警告在
参数与前面的标记之间没有空格分隔。
⽬录下就⽣成了这些⽂件-CMakeFiles, CMakeCache.txt, cmake_install.cmake 等⽂件,并且⽣成了Makefile. 现在
不需要理会这些⽂件的作⽤,以后你也可以不去理会。最关键的是,它⾃动⽣成了Makefile.
4、使⽤make命令编译
5、最终⽣成了Hello的可执⾏程序
CMake⼀个HelloWord-的语法介绍
PROJECT关键字
可以⽤来指定⼯程的名字和⽀持的语⾔,默认⽀持所有语⾔
PROJECT (HELLO) 指定了⼯程的名字,并且⽀持所有语⾔—建议
PROJECT (HELLO CXX) 指定了⼯程的名字,并且⽀持语⾔是C++
PROJECT (HELLO C CXX) 指定了⼯程的名字,并且⽀持语⾔是C和C++
该指定隐式定义了两个CMAKE的变量
_BINARY_DIR,本例中是 HELLO_BINARY_DIR
_SOURCE_DIR,本例中是 HELLO_SOURCE_DIR
MESSAGE关键字就可以直接使⽤者两个变量,当前都指向当前的⼯作⽬录,后⾯会讲外部编译
问题:如果改了⼯程名,这两个变量名也会改变
This warning is for project developers. Use -Wno-dev to suppress it.
-- The C compiler identification is GNU 10.2.1
-- The CXX compiler identification is GNU 10.2.1
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- This is BINARY dir /root/cmake
-- This is SOURCE dir /root/cmake
-- Configuring done
-- Generating done
-- Build files have been written to: /root/cmake
root@localhost cmake]# make
Scanning dependencies of target hello
[100%] Building CXX object CMakeFiles/hello.dir/main.cpp.o
Linking CXX executable hello
[100%] Built target hello
工程的可执行文件存放目录
工程的源文件存放目录
此警告是针对项目开发人员的。使用-Wno-dev抑制它。
C编译器识别是GNU 10.2.1
CXX编译器标识是GNU 10.2.1
检查C编译器:/usr/bin/cc
检查C编译器是否工作:/usr/bin/cc——works
检测C编译器ABI信息
检测C编译器ABI信息-完成
检查工作CXX编译器:/usr/bin/c++
检测CXX编译器ABI信息
配置完成
生成完成
编译文件已经写入到:/root/cmake
扫描目标hello的依赖项
构建CXX对象CMakeFiles/hello.dir/main.cpp.o
链接CXX可执行文件hello
建立目标hello
剩余12页未读,继续阅读
资源评论
光电仪器设计学徒
- 粉丝: 171
- 资源: 6
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功