Cmake学习笔记(2)CMakeLists.txt编写规则

一、创建项目

在这里插入图片描述

  1. bin 用来存放可执行的二进制;
  2. include/myslam 存放 slam 模块的头文件,主要是.h。这种做法的理由是,当你把包
    含目录设到 include 时,在引用自己的头文件时,需要写 include ”myslam/xxx.h”,
    这样不容易和别的库混淆。
  3. src 存放源代码文件,主要是 cpp;
  4. test 存放测试用的文件,也是 cpp;
  5. lib 存放编译好的库文件;
  6. config 存放配置文件;
  7. cmake_modules 第三方库的 cmake 文件,在使用 g2o 之类的库中会用到它。

二、 利用以下图片进行讲解

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

用SET来设置.exe可执行文件和共享库的输出路径
用INCLUDE_DIRECTORIES()包含include文件加下的头文件
用ADD_SUBDIRECTORY()包含src文件夹下的所有source文件
cmake_modules 第三方库的 cmake 文件,在使用 g2o 之类的库中会用到它。
config 存放配置文件;

对于那些我们通过下载并安装到我们电脑上的库,如OpenCV, PCL,g2o,eigen3,我们在用这些库之前需要分别用find_package()和include_directories()来找到并将他们的头文件包含到工程中来,最后通过target_link_libraries()来将这些库连接到我们的可执行文件中去,因为这些可执行文件的生成需要用到这些库。

而对于那些我们自己编写的库也就是一些我们自己编写的函数interface 包括.h文件和.cpp文件,我们则只需要用add_library()将他们添加到工程中来,如果这些库的生成也需要用到其他的一些库,那么我么仍然需要用target_link_libraries()将所用到的库链接进来。但是不需要用find_package()和include_directories()了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章