cmake、catkin知识点点点点

2023-05-16

  • GNU、GPL、GCC、G++

GNU:一个计划/运动,目标是创建一套完全自由的操作系统

GPL:GNU通用公共许可协议,广泛应用的自由软件许可证,linux发行时选择了GPL

GCC:GNU C Compiler,早期的C编译器,后来集成更多的编译器,GCC就代表 the GNU Compiler Collection

G++:GCC的C++编译器,g++ 是将 gcc 默认语言设为 C++ 的一个特殊的版本,链接时它自动使用 C++ 标准库而不用 C 标准库

编译器选择:根据后缀名,*.c调用C编译器,*.cpp调用C++编译器

编译C++程序:# g++ demo.cpp  #或者 gcc -xc++ -lstdc++ -shared-libgcc demo.cpp(根据参考链接所述,现在使用gcc会自动进行编译器的选择)

https://www.zhihu.com/question/20940822/answer/16667772

 


  • 查看cmake帮助

cmake -h

 

  • 编译过程

cmake:生成makefile

make:生成目标文件

make install:将可执行文件、第三方依赖包和文档复制到正确的路径,可能需要权限

 

  • 构建选项

cmake构建makefile文件时,可指定build生成路径、src源文件路径(包含CMakeLists.txt)、install路径:

-B:指定build路径,缺省则默认生成在当前路径下,若build文件夹已经cmake过,则可以省略-B参数制定build路径

-S:制定src源文件路径,-S可省略,默认为设定src路径,如常用的在build文件夹下使用cmake ..

-DCAMKE_INSTALL_PREFIX=/location/:指定make install路径,默认是/usr/local???

-DCMAKE_BUILD_TYPE=Debug / Release:构建目标类型

 

  • cmake与autotools

autotools:GNU构建系统,是利用脚本和make程序在特定的平台上构建软件的过程

                    三部曲:./configure -> make -> make install

cmake:autotools替代方案,简化配置过程,跨平台构建

               三部曲:cmake .. -> make -> make install

https://blog.csdn.net/qq_34924407/article/details/82917391

http://www.ttlsa.com/mysql/configure-to-cmake/


  • catkin

catkin_make等价于:

catkin_make install等价于

 

catkin_make特定功能包

catkin_make恢复所有功能包

 

  • catkin与cmake

catkin文件组织将cmake中间文件生成到build下,目标文件生成到devel / install下

cmake将中间文件和目标文件均生成到build下,install可指定

 

  • aux_source_directory
aux_source_directory(<dir> <variable>):在目录中查找所有源文件

https://www.jianshu.com/p/64da7a5f2c64

 

  • target_include_directories

指定目标包含的头文件路径

 

  • cmake:target_*中的public、private、interface

https://zhuanlan.zhihu.com/p/82244559

 

  • target_include_directories与include_directories

include_directories:是一个全局包含,向下传递。如果某个目录的CMakeLists.txt使用了该指令,其下所有的子目录默认包含

target_include_directories:

https://zhuanlan.zhihu.com/p/82244559

 

  • CMAKE_CURRENT_SOURCE_DIR

路径指向当前正在处理的源目录(CMakeLists.txt所在目录)

 

  • STREQUAL

cmake语法,用于字符串的比较,相同返回true

 

  • install

https://zhuanlan.zhihu.com/p/102955723

 

  • $ENV{name}

调用系统环境变量

 

 

 

待续。。。

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

cmake、catkin知识点点点点 的相关文章

随机推荐

  • CMakeLIsts.txt与Makefile的区别

    CMake是一个跨平台的安装 编译 工具 可以用简单的语句来描述所有平台的安装 编译过程 他能够输出各种各样的makefile或者project文件 能测试编译器所支持的C 43 43 特性 类似UNIX下的automake CMake 使
  • linux socket编程

    1 网络中进程之间如何通信 进程通信的概念最初来源于单机系统 由于每个进程都在自己的地址范围内运行 xff0c 为保证两个相互通信的进程之间既互不干扰又协调一致工作 xff0c 操作系统为进程通信提供了相应设施 xff0c 如 UNIX B
  • linux环境下如何卸载一路赚钱(yilu/mservice)

    一 删除定时任务 xff1a sudo crontab l u root 2 gt dev null grep v mservice sudo crontab u root 二 停止服务 对于ubuntu以及centos 7的用户 serv
  • 【图像处理】多帧降噪算法

    本文参考论文 xff1a Denoising image sequences does not require motion estimation http citeseerx ist psu edu viewdoc download do
  • VINS-Fusion初始化------IMU与Camera外参旋转标定,IMU角速度偏置标定,重力向量、单目尺度标定

    本文基于VINS Fusion解释VIO系统的初始化 xff0c 包括在线标定IMU Camera的外参旋转 xff0c IMU角速度偏置 xff0c 重力方向 xff0c 单目尺度 单目初始化相比于双目 xff0c 多一个构建SFM问题优
  • 视觉惯性里程计Visual–Inertial Odometry(VIO)概述

    本文主要来自于博客园关于知乎的讨论 链接如下 xff1a Visual Inertial Odometry VIO
  • IBM Was 打补丁记录

    0 拷贝解压ifph52925升级包 通过FTP工具 xff0c 把压缩包传到服务器 xff0c unzip d test01 9 0 0 0 ws was ifph52925 zip 1 停掉was 服务 ps ef grep was k
  • 阿里云服务器远程桌面安装

    阿里云服务器远程桌面安装 环境说明 xff1a CentOS 8 3 一 安装桌面环境 root用户下执行命令 yum grouplist yum groupinstall y span class token string 34 Serv
  • STM32与Futaba遥控器进行S.Bus的通讯程序

    Futaba xff08 日本双叶电子工业 xff0c 戏称 扶他爸 xff09 的遥控器用航模中使用较为广泛的遥控器 S Bus则是Futaba公司提出的舵机控制总线 本篇博文主要以T6K为对象 xff0c 介绍STM32与S Bus协议
  • c++ 小知识点记录

    数据类型 数据类型类型说明符位数取值范围整型int32 2147483648 43 2147483647短整型short int16 32767 43 32768长整型long int32 2147483648 43 2147483647单
  • makefile简明教程

    makefile 主要是编译就是用来编译源文件的 一个工程中的源文件不计其数 xff0c 其按类型 功能 模块分别放在若干个目录中 xff0c makefile定义了一系列的规则来指定哪些文件需要先编译 xff0c 哪些文件需要后编译 xf
  • SLAM 定位和导航

    码一篇文章后面看 xff1a gt https www cnblogs com hiram zhang p 10416081 html
  • 开发工具及环境配置

    一 jdk下载 安装与环境变量配置 1 下载 xff08 1 xff09 打开下载网址Java Downloads Oracle或直接搜索Oracle JDK下载 xff08 2 xff09 根据电脑系统 xff08 win linux等
  • ros2中 用python编写action 的service和client

    第一步 xff1a 定义请求反馈的变量 主要参考官网网站 xff1a Writing an action server and client C 43 43 ROS 2 Documentation Rolling documentation
  • TX2自动刷机视频教程

    TX2自动刷机视频教链接https v qq com x page b0515967lbr html
  • python 中 机器学习算法 --决策树

    文章目录 思维脑图3 1 2 用pandas加载数据集3 1 3 清洗数据集现在计算这些的实际值主队和客队最后一场比赛赢了吗 xff1f 3 2 决策树3 2 1 决策树中的参数3 2 2 决策树的使用 3 3 体育赛事结果预测 3 4 随
  • 结合OPENNI2,Aruco与OPENCV进行视觉定位

    前些时间写了篇文章把我在做这个项目中遇到的问题以及思路说了一下 传送门 http jcs130 iteye com blog 2185533 在上篇文章的思路下作了实现 已经达到了教授的要求 nbsp 首先第一步检测四个角的坐标 经试验 在
  • oracle 备份表

    一 PL SQL备份 xff08 1 xff09 打开PL SQL xff08 2 xff09 在Tools下选择Export Tables xff08 3 xff09 在列表中找到想要备份的表 xff0c 右键选择Export Data
  • 概率机器人——机器人环境交互

    状态 环境特征以状态表征 xff0c 状态是所有会对未来产生影响的机器人及其环境的所有方面因素 概率生成法则 状态转移概率 xff0c 根据条件独立 xff0c 可得到 xff1a 它指出了环境状态作为机器人控制ut的函数是如何随着事件变化
  • cmake、catkin知识点点点点

    GNU GPL GCC G 43 43 GNU xff1a 一个计划 运动 xff0c 目标是创建一套完全自由的操作系统 GPL xff1a GNU通用公共许可协议 xff0c 广泛应用的自由软件许可证 xff0c linux发行时选择了G