cmakelist教程(cmakelist编写)

cmakelist教程(cmakelist编写)打开终端 输入 查看安装 CMake 版本 src 目录存放源文件 include 目录包含 src 所引用的头文件 搭建的环境生成的对象在 build 文件夹下 输出的 elf 文件位于 bin 文件夹下 动态库和静态库位于 lib 文件夹下 只有一个源文件 bin build include src main cpp 在根目录下新建一个 CMakeLists txt 文件 cd 到 build 目录下 执行命令

大家好,我是讯享网,很高兴认识大家。



打开终端,输入:

查看安装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

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

小讯
上一篇 2025-06-08 22:08
下一篇 2025-06-06 10:09

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/182951.html