当前位置:网站首页 > 云服务教程 > 正文

cmakelist教程(cmakelist编写)



打开终端,输入

查看安装CMake版本

src目录存放源文件,include目录包含src所引用的头文件,搭建的环境生成的对象在build文件夹下,输出的elf文件位于bin文件夹下,动态库和静态库位于lib文件夹下。

只有一个源文件

  • bin
  • build
  • include
  • src
  • main.cpp

在根目录下新建一个CMakeLists.txt文件。

  1. cd到build目录下,执行命令, 成功生成Makefile文件;
  2. 再在build目录下,执行命令, elf文件成功生成;
  3. 切换到bin目录下,运行命令,显示运算结果
  4. 如果需要重新生成,则运行命令

src下有多个源文件

  • bin
  • build
  • include
  • testFunc1.h
  • testFunc.h
  • src
  • main.cpp
  • testFunc1.cpp
  • testFunc.cpp

一种方法是直接在命令中添加所有的源文件。如果源文件过多,我们可以利用cmake提供的命令,其中dir指定目录,var存放源文件列表的变量。

命令会将src目录下的所有源文件添加进来,然而并不是所有的源文件是我们需要的,此时可以利用命令定义存放我们需要的源文件。

对于这种正规的工程架构,我们有两种CMakeLists.txt文件的编写方式,一种是在最外层目录下建一个CMakeLists.txt文件,调用src目录下的CMakeLists.txt文件

里外两层CMakeLists.txt
  1. 在最外层建一个CMakeLists.txt
  1. 执行cmake时,调用src目录下的CMakeLists.txt运行
  1. cd切换至buildu目录,执行,再执行
只使用一层CMakeLists.txt

库也就是预先编译好的方法的集合,加上头文件就可以被别人调用。根据链接时期不同,库可以分为静态库和动态库。静态库在程序编译时链接(常用.a结尾),而动态库在程序运行时链接完成(常以.so结尾)。两者的最大区别在于,静态库链接时直接被加载到程序中,而动态库链接时只是保留接口,与程序代码独立,有利于降低程序的耦合性。

动态库和静态库的编译控制

  • build
  • CMakeLists.txt
  • lib
  • testFunc
  • testFunc.cpp
  • testFunc.h

其中:
: 生成静态库或动态库
: 设置最终生成库的名称

库的链接

  • bin
  • build
  • CMakeLists.txt
  • src
  • main.cpp
  • testFunc
  • inc
  • testFunc.h
  • lib
  • libtestFunc.a
  • libtestFunc.so

其中:
: 在指定目录下查找指定库,把库的绝对路径放在变量里。再执行时就会去寻找库是否存在,提前发现错误。
: 链接库与目标文件

到此这篇cmakelist教程(cmakelist编写)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 电路维修视频教程(电动车电路维修视频教程)2025-04-15 13:09:09
  • 泰拉瑞亚调时间教程(泰拉瑞亚如何调节时间)2025-04-15 13:09:09
  • spss27(spss27使用教程)2025-04-15 13:09:09
  • 虚拟机安装详细教程linux(虚拟机linux系统详细安装步骤)2025-04-15 13:09:09
  • 批处理命令(批处理命令教程)2025-04-15 13:09:09
  • cmakelist教程(cmakelist有什么用)2025-04-15 13:09:09
  • mac装双系统win10详细教程(mac装win10会毁电脑吗)2025-04-15 13:09:09
  • xmouse怎么设置中文(xmouse设置教程)2025-04-15 13:09:09
  • junit4教程(junit4下载教程)2025-04-15 13:09:09
  • ubuntu镜像文件img(ubuntu镜像文件下载教程)2025-04-15 13:09:09
  • 全屏图片