前言:在网上找了一大圈,如何在px4源码examples中添加自己的程序,包括官网那个都没有用,后来发现需要在对应的编译位置对cmake文件进行修改,具体如下:

1.在你想要的位置新建文件夹,建议和你的c或者cpp文件同名,一般在module或者examples文件夹下新建你的文件夹,我是在examples下面新建的。路径为../PX4-Autopilot/src/examples/xxx

有的同学应该是../Firmware/src/examples/xxx

2.新建.c或者.cpp文件,以及CMakeLists.txt

.c或者.cpp文件 和 CMakeLists.txt的编写建议参考官网链接

First Application Tutorial (Hello Sky) | PX4 User Guide

这里贴一下我的,因为只是为了编译,内容是官网的px4_simple_app简略版

#CMakeLists.txt
px4_add_module(MODULE examples__my_example_appMAIN my_example_appSTACK_MAIN 200SRCSmy_example_app.cDEPENDS
)
#my_example_app.c
#include <px4_platform_common/px4_config.h>
#include <px4_platform_common/tasks.h>
#include <px4_platform_common/posix.h>
#include <unistd.h>
#include <stdio.h>
#include <poll.h>
#include <string.h>
#include <math.h>
#include <uORB/uORB.h>
#include <uORB/topics/sensor_combined.h>
#include <uORB/topics/vehicle_attitude.h>__EXPORT int my_example_app_main(int argc, char *argv[]);int my_example_app_main(int argc, char *argv[])
{PX4_INFO("Hello Sky!");PX4_INFO("exiting");return OK;
}

3.之前最困扰的地方,由于很多教程里提到去CMake文件夹下找configs文件夹,但我的有没有,所以一直编译不通过,后来根据

PX4代码学习系列博客(5)——在px4中添加自己的模块_千人斩的博客-CSDN博客

找到了对应的修改之处

(1)在PX4-Autopilot/boards/px4/sitl/default.cmake中进行修改,加上你的文件名就可以了

第一个注意如果你是编译的其他版本,那就在px4文件夹下找你的编译方式,我是软件在环仿真所以找的是sitl文件夹

第二个注意,如果你之前新建的文件夹是在modules文件夹下面,那你对应修改的的地方应该在modules下面

(2)在PX4-Autopilot/boards/px4/sitl/test.cmake中进行修改,加上你的文件名,步骤同上

4.修改完毕,保存文件后在终端打开,以运行jmavsim为例

make clean
make px4_sitl jmavsim

之后执行 help 命令,看看给出的那一堆里面有没有你新建的那个

有的话,直接敲进去这一句,看看输出结果吧

执行完毕~

px4源码编译之 建立自己的程序模块相关推荐

  1. LNMP架构详解(2)——Mysql、PHP、Nginx源码编译过程

    前言 本文将介绍LNMP架构中Mysql.PHP.Nginx的源码编译过程:这时有人不仅会问:在我们使用的Linux系统中,可以从yum源中获得mysql.php,为什么要进行如此漫长复杂的过程进行编 ...

  2. 源码 linux下编译_Linux云服务器软硬链接及源码编译安装python3.8的一些备注

    推荐一个简书作者写的从零开始学习Linux,非常细,授人以鱼不如授人以渔. https://www.jianshu.com/p/54c0e6a1da99 正文:看一下服务器的版本 cat /proc/ ...

  3. LNMP架构环境搭建之PHP、Nginx源码编译安装及其简单配置应用

    LNMP架构中的Mysql见上一篇博文"LNMP架构环境搭建之mysql源码编译安装" 一.PHP简介 PHP(外文名:PHP: Hypertext Preprocessor,中文 ...

  4. mysql5.7.25源码安装_源码编译安装 mysql5.7.25

    以前最烦就是源码编译安装mysql5.7 ,原因无它 - 很麻烦,但最近因学习需要避免不了,主要介绍在centos7 下源码编译安装mysql5.7 . 安装 安装依赖包 yum install -y ...

  5. weka源码编译步骤

    weka源码编译步骤 1 安装JDK环境和Java开发环境,我用的是MyEclipse. 2 安装WEKA(安装不带JRE的WEKA即可). 3 重新编译: 3.1 创建工作目录.新建一个WEKA-R ...

  6. Hadoop-2.8.0集群搭建、hadoop源码编译和安装、host配置、ssh免密登录、hadoop配置文件中的参数配置参数总结、hadoop集群测试,安装过程中的常见错误

    25. 集群搭建 25.1 HADOOP集群搭建 25.1.1集群简介 HADOOP集群具体来说包含两个集群:HDFS集群和YARN集群,两者逻辑上分离,但物理上常在一起 HDFS集群: 负责海量数据 ...

  7. CentOS 7 源码编译MariaDB 5.5.46

    预备知识:     MySQL/MariaDB的源码编译需要借助于:cmake:     cmake的重要特性之一是其独立于源码(out-of-source)的编译功能,即编译工作可以在另一个指定的目 ...

  8. Linux16.04配置tensorflow(GPU源码编译)并深入了解tensorboard

    Tensorflow – Google推出的一个强大的"深度学习框架".于2015年11月在GIthub上开源,在2016年4月补充了分布式版本,并于2017年1月发布了1.0版本 ...

  9. linux源码编译emqttd,emqtt编译及简单测试记录

    emqtt:在Erlang中实现的MQTT客户端库和命令行工具,支持MQTT v5.0 / 3.1.1 / 3.1. 下载源码 编译 cd emqtt & make 运行 ./rebar3 s ...

最新文章

  1. Thinkphp5.0快速入门笔记(1)
  2. Auto Lisp 标注子样式_CSS 核心样式
  3. Spring8中lambda表达式的学习(Function接口、BiFunction接口、Consumer接口)
  4. 普林斯顿微积分读本篇十二:洛必达法则
  5. 图形学笔记(四)——Harris 角点检测器延申
  6. 计算机术语CPI是什么意思,鼠标上的cpi什么意思?鼠标知识科普
  7. キュリオ / 库利欧
  8. 十行以内,你写过哪些比较酷的 Matlab 代码?
  9. 怎么压缩解压打包文件???
  10. BUUCTF:[XMAN2018排位赛]file
  11. h5文件格式数据集制作
  12. YAMLException: bad indentation of a mapping entry at line 解决
  13. Android之Mob第三方短信验证服务
  14. 基于C++的AGV机器人无线控制实现
  15. ucenter java版客户端
  16. enable 华为交换机ntdp_华为交换机设置
  17. 【Python游戏】咱就说Python实现一个蔡徐坤大战篮球的小游戏,可还行? | 附带源码
  18. Redis 7.0 正式发布,新增近 50 个新命令,这次真的学不动了。。
  19. 微信小程序webview页面不刷新,webview缓存页面不刷新,小程序webview页面不刷新,小程序webview地址追加参数页面还是缓存,解决办法
  20. go pear.php 下载,请注意!有人攻破了PEAR网站并篡改了go-pear.phar安装包

热门文章

  1. ADAS汽车摄像机集中供电方案 MAX20049
  2. 江苏魔百盒M301H_Hi3798MV300-300H-310芯片通刷-免费卡刷固件包
  3. 使用Arcgis Javascript api 访问其他地图
  4. 整合Nacos Config启动失败
  5. java 微信自定义菜单 java微信接口开发 公众平台 SSM
  6. Centos7 OpenSSH漏洞整改
  7. 用 Taichi 加速 Python:提速 100+ 倍
  8. 2022-07-12 第七小组 wly 学习笔记
  9. 转wap开发之wml详细教程
  10. 问:发电机的并列方式有哪几种?