PX4项目学习::(六)项目的配置与编译(Cmake)

2023-05-16

一、简介

        在讲解编程之前,我得交代两个重要的东西,因为这两个东西存在于px4的源码系统当中,非常重要,它们就是make和Cmake。

      首先谈谈何为make

        熟悉linux系统的朋友对make肯定不陌生,它就是用来读取Makefile文件然后执行,把源码编译链接为可执行程序的一个软件。我们只要把待编译的源码文件和这些源码所需要用到的库写到Makefile文件里面执行make命令就能得到可执行或者可烧录的二进制文件。

        那何为Cmake呢?

        我们可以这样理解,早期人们直接使用gcc命令编译程序,当源码文件多起了之后,直接用gcc命令过长,链接的库过多,这样就太麻烦了。这时候Make就应运而生,解决了人们对于代码文件过多的困扰。但随着项目越来越大,文件越来越多,人们发现make也捉襟见肘,因为编写Makefile文件又会变得异常复杂。这个时候聪明的程序猿就想能不能有个程序可以帮我写Makefile文件呢?这样就引出了Cmake,当然Cmake不是智能的,它不可能自己去辨别那些是代码,那些是文件,需要什么库。这样就引入了另外一套规则,也引入了一个文件CMakeLists.txt,这个文件就是Cmake程序识别的文件,有这个文件,Cmake就能帮助程序猿自动生成Makefile文件。

   总的来说流程应该是这样的:

                                cmake                            make
   CMakeLists.txt-------------->Makefile---------------------->可执行文件

                                                                         src,lib


        看过px4源码文件的朋友肯定会发现里面有很多CMakeLists.txt文件,事实上整个px4源码的文件都是基于CMakeLists.txt的(Nuttx系统不是,Nuttx是基于Makefile的,px4源码基本都在Firmware/src下,Nuttx操作系统源码在Firmware/NuttX下

        编译脚本的作用,是将这些人们写的程序编译成二进制文件供机器使用。

​         PX4原生固件采用的Cmake编译脚本的书写方式,降低makefile的书写难度。我们只要掌握几个修改脚本就可以掌握系统的编译。

(51条消息) PX4二次开发——编译与启动脚本的修改_多谱hhhh的博客-CSDN博客

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

PX4项目学习::(六)项目的配置与编译(Cmake) 的相关文章

随机推荐

  • SSH工作原理&Ubuntu20.04安装并配置SSH&设置SSH免密登录

    目录 一 SSH的介绍 xff08 服务器端 xff0c 客户端 xff09 1 SSH 远程连接工具 连接原理 xff1a 2 SSH的安全机制 3 两种级别的验证方法 xff08 登录方法 xff09 二 ssh的安装与启动 1 安装
  • SSH使用问题:无法免密登录

    一 排查服务器端 1 检查authorized keys文件权限 xff0c 并设置为700 chmod 700 authorized keys 2 检查 etc ssh sshd config文件 sudo vim etc ssh ssh
  • PX4项目学习::(一)项目架构

    目录 序 xff1a 项目整体嵌入式架构 xff1a 无人机方面做嵌入式编写的飞控总结 1软件 xff1a 2硬件 xff1a 1 PX4 Pixhawk的软件体系结构 2 下图所示为PX4的算法顶层架构 左边是整个飞控系统的控制功能实现
  • PX4项目学习::(七)飞控栈:导航(Navigator和mission控制)

    25条消息 PX4飞控之导航及任务架构 Felix ZL的博客 CSDN博客
  • 微策略春招面试总结

    春季招聘时我报的研发岗 xff0c 由于我不是杭州本地人 xff0c 故首先接到的是电话面试 xff0c 电话面试大概一周左右被通知去杭州总部面试 下面主要简述一下面试的内容 第一面是技术面 xff0c 大概持续近一个小时 首先面试官会照着
  • PX4项目学习::(六)CMakeLists.txt 文件剖析

    27条消息 PX4 CMakeLists txt 文件剖析 lipi37的博客 CSDN博客 px4 cmake makefile介绍 跟我一起写Makefile 1 0 文档 seisman github io 57条消息 PX4编译文件
  • PX4项目学习::(七)飞控栈算法梳理

    无人机算法分为三种 xff0c 分别为捷联式惯性导航系统 滤波算法和估计算法 xff08 卡尔曼滤波器 xff09 飞行控制算法 xff08 PID算法 xff09 Px4控制算法综述 1commander和navigator产生期望位置
  • PX4项目学习::(七)驱动(src-->drivers)

    PX4的spi驱动 xff0c nuttx的spi硬件抽象 古月居 guyuehome com 无人机中级篇 xff1a 第四讲 xff1a 系统级驱动程序开发 知乎 zhihu com 无人机中级篇 xff1a 第五讲 xff1a 用应级
  • PX4:二次开发:流程

    1 程序编写 xff08 用模板简单实现一个程序 xff09 gt 进阶 xff1a 不同项目下的程序规范 xff1b 调用子模块的流程 2 在Nuttx系统中注册应用并编译 为了使该程序能够编译进固件 xff0c 需要在系统的cmake文
  • 原理::定位与导航::IMU和GPS融合原理(无人驾驶)

    41条消息 动手学无人驾驶 xff08 6 xff09 xff1a 基于IMU和GPS数据融合的自车定位 自动驾驶小学生的博客 CSDN博客 41条消息 重读经典 Quaternion kinematics for the error st
  • 系统使用:vmware虚拟机如何不占用c盘

    42条消息 vmware放在D盘占用C盘空间 vmware虚拟机如何不占用c盘 wendychow001的博客 CSDN博客
  • 无人机学习指南

    学什么 xff1f 理论与开发 理论 xff1a 控制栈的原理与算法 43 通信 目的 xff1a 了解无人机的本质 知识解决的是 why 如果你遇到的问题通常是 xff0c 为什么要用欧拉角 xff1f 为什么要用滤波 xff1f 那说明
  • PX4项目学习::(八)无人机仿真综述(介绍)

    xff08 一 xff09 仿真平台 xff1a 物理化仿真平台 xff1a xff08 world 43 node xff1a 使用基础模块搭建环境 xff08 world environment xff09 与plant xff09 飞
  • PX4项目学习::(一)项目介绍::源码目录介绍

    代码目录 xff1a 1 boards 各种飞控硬件平台的配置文件 2 build 编译产生的目录 xff0c make之后生成的文件放置在这个目录 3 cmake cmake编译配置目录 4 Documentation 开发者文档目录 x
  • PX4项目学习::(三)Nuttx操作系统

    50条消息 PX4代码解析 4 超级菜狗的博客 CSDN博客 px4代码解析
  • Jetson TX2使用记录

    Jetson TX2使用记录 一 配置二 工具1 安装jtop2 安装文件同步工具3 I2C4 ssh5 模块温度 三 自启动1 自启动优化2 自启动设置1 设置WiFi开机自动连接2 设置开机自动登录 用以远程 3 应用软件自启动 3 桌
  • packages.xml分析

    data system packages 1 data system packages list 记录安装app的信息 code com android cts priv ctsshim 10028 0 data user 0 com an
  • PX4项目学习::(四)中间件::通信:uORB

    PX4代码学习系列博客 4 uORB相关 灰信网 xff08 软件开发博客聚合 xff09 freesion com
  • PX4项目学习::(五)项目启动流程(从上电开始)

    PX4的启动流程 初学c语言对RTOS不是很熟悉的同学对main函数都有着不一般的执着 xff0c 阅读代码时总是会去找程序的main函数 xff0c 然后从入口处开始阅读 实际上我们接触的所有软件程序 xff0c 使用到的main函数都不
  • PX4项目学习::(六)项目的配置与编译(Cmake)

    一 简介 在讲解编程之前 xff0c 我得交代两个重要的东西 xff0c 因为这两个东西存在于px4的源码系统当中 xff0c 非常重要 xff0c 它们就是make和Cmake 首先谈谈何为make 熟悉linux系统的朋友对make肯定