• Cmake


    cmake_minimum_required(VERSION 3.18.1)

    声明使用的最低版本

    project("myName")

    指定当前工程名称

    set(src_list test1.cpp test2.cpp test3.cpp)

    用来显示的定义变量,将test.cpp等多个源文件用空格隔开赋值给src_list

    message(status "这里是输出信息")

    使用message向屏幕输出信息,status表示输出前添加“--”

    add_library(myTest myTest.cpp)

    生成静态库

    add_library(myTest shared myTest.cpp)

    生成动态库.so

    add_library(myTest shared src/test1.cpp src/test2.cpp)

    把多个源文件生成一个库,多个cpp文件用空格隔开

    find_package(OpenCV REQUIRED QUIET)

    用来查找依赖包,把一整个依赖包的头文件包含路径、库路径、库名字、版本号都获取到,可能会失败

    OpenCV要查找的包名

    REQUIRED 当未找到满足条件的包(例如版本号不匹配,或指定组件未找到等),会终止CMake的执行过程,并输出一条错误信息。如果未指定该选项,即使未找到满足条件的包,CMake的执行过程也会继续

    QUIET 禁止输出信息,正常情况当找到包时,CMake会打印一些信息,指定该选项时会禁止掉这些打印。例外是当同时指定QUIET时,如果找不到包,仍然会输出错误信息并终止执行过程

    COMPONENTS 指定要查找的组件。通常一个包可能包含多个组件(可以理解为多个库,例如把C++的std看成一个包的概念,那么vector就是std下的其中一个组件),我们的工程可能会依赖包下的具体某个组件,因此可以通过这个选项来检测这些组件是否存在。通常的约定是,该选项后的组件应该都找到时才认为包找到,否则认为未找到满足条件的包。这个约束会依赖包的.cmake来实现,通过find_package命令传入的COMPONENTS可以通过_FIND_COMPONENTS这个变量来获得

    OPTION_COMPONENTS与上面的区别是不要求组件必须存在,不影响Cmake的执行

    _FOUND用来表示包是否找到,true表示找到,false表示未找到

    find_dependency(MYDEP REQUIRED)

    依赖其他库,和find_library用法相同

    catkin_package()

    给下游(使用本包的其他包)使用,也就是向其他包导出依赖,这些依赖可能是本包给其他包提供的公共头文件、库,或者是本包依赖的其他包

    有五种方式

    DEPENDS和CATKIN_DEPENDS用来告诉catkin需要将你程序包的哪些依赖项,传递给使用find_package(...)查找你的程序包的程序包

    INCLUDE_DIRS 导出包的路径

    LIBRARIES 导出项目中的库

    CATKIN_DEPENDS 该项目依赖的其他catkin项目

    DEPENDS 该项目依赖的非catkin Cmake项目

    inlcude_directories()

    向工程添加多个特定的头文件搜索路径

    link_directories()

    向工程添加多个特定的库文件搜索路径

    add_executable(main main.cpp main1.cpp main2.cpp)

    将cpp文件生成可执行文件main

    target_link_libraries(main test.so user.so)

    为可执行文件main添加需要链接的库

    include()

    用来载入并运行来自于文件或模块的 CMake 代码

  • 相关阅读:
    【第六部分 | JavaScript高级】2:函数高级
    Java开发学习(二十四)----SpringMVC设置请求映射路径
    python基础练习题库实验1
    想理解Java的IO,不要从操作系统开始说起的都是耍流氓
    Tapdata 获得阿里云首批产品生态集成认证,携手阿里云共建新合作
    JAVA坝上长尾鸡养殖管理系统计算机毕业设计Mybatis+系统+数据库+调试部署
    简单易上手,亚马逊云科技Amazon CodeWhisperer个性化辅助功能成为开发者好帮手
    UE4C++学习篇(十八)-- SceneCaptureComponent组件处理小地图
    前端实习最终章
    Spring
  • 原文地址:https://blog.csdn.net/somethingstill/article/details/125595169