PX4最新版ubuntu编译环境搭建

2023-05-16

PX4最新版ubuntu编译环境搭建

本博客的撰写主要也是博主的自己血泪之路,参考了各种博客,然而对于我并没有什么卵用,简直是成功的都一样,不成功的各有各的不同,最后在快要放弃而转去使用别人搭建好的环境时,成功了!!!下面就是自己的流程:
软件:VM12+ubuntu16.04
参考网址:https://dev.px4.io/en/setup/dev_env_linux.html
下面为实现步骤
- VM12安装+破解
- ubuntu16.04下载与安装
- 编译环境搭建


VM12安装+破解

软件下载:百度有提供
这里写图片描述
破解:百度搜索序列号
例如:5A02H-AU243-TZJ49-GTC7K-3C61N(如不行,再去搜)

ubuntu16.04下载与安装

下载地址:http://www.linuxidc.com/Linux/2017-08/146077.htm | http://cn.ubuntu.com/download/
(也可以去官网下载其他版本)
安装与实现文件共享:http://www.jb51.net/article/97387.htm(安装的时候选择中文;当然这里可能会遇到安装成功后,打开老是出现安装时的界面,这个时候把打开电源时进入固件的设置回复默认就好了,如果没有就继续下一步)。文件共享实际上就是可以实现两个系统下文件可以互相拖,流程按照操作就好了。

下面就是非常重要的内容了,不过流程非常简单

编译环境搭建(我是在root下安装的)

注: ~$: sudo su - 切换到root

  • 把用户添加到用户组 “dialout”(如果这步没做,会导致很多用户权限问题):
 sudo usermod -a -G dialout $USER

然后点击电源键(右上角)注销后登陆,设置成功

  • 下载官网脚本进行安装
    打开最上面的参考链接,点击对应的脚本(提供的有多个,我下载的是ubuntu_sim_nuttx.sh )复制上方的链接,使用wget +链接 进行下载,当然可通过新建某个文件夹,然后在当前目录下进行下载:
mkdir ~/jiaoben
cd ~/jiaoben
:~/jiaoben# wget 链接

下载完成之后进行安装:

:~/jiaoben# source ubuntu_sim_nuttx.sh 

这个时候保证网速良好,实在不行就可以开热点(说起来都是泪啊)
环境是否搭好了可以检验交叉编译工具是否安装成功

:~# arm-none-eabi-gcc --version
arm-none-eabi-gcc (GNU Tools for ARM Embedded Processors) 5.4.1 20160919 (release) [ARM/embedded-5-branch revision 240496]
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

这样就表示成功了,但是安装完脚本之后会提示没有安装 arm-none-eabi-gcc,会提示使用apt-get insatll 进行安装,这个时候还是自己手动安装吧,因为按照提示安装的后面会出现 内存溢出的问题,至于为什么可以等成功之后再去研究,先把环境装好再说。

  • gcc下载与环境变量设置
    gcc网址:https://launchpad.net/gcc-arm-embedded/+download(常用的)
    linux版本的gcc下载:https://launchpad.net/gcc-arm-embedded/+download
    安装路径:/usr/bin

下载与解压

:~# wget https://launchpad.net/gcc-arm-embedded/+download
:~# tar jxvf gcc-arm-none-eabi-5_4-2016q3-20160926-linux.tar.bz2 -C /usr/bin
##寻找路径
:~# cd /usr/bin/gcc-arm-none-eabi-5_4-2016q3/bin
:~/usr/bin/gcc-arm-none-eabi-5_4-2016q3/bin# pwd ##获取路径
/root/usr/bin/gcc-arm-none-eabi-5_4-2016q3/bin

设置环境变量
(大家应该也搜到了设置环境变量不同教程在不同的文件下设置了吧,设置说明也可参照这个链接:http://www.linuxidc.com/Linux/2016-12/138771.htm)我是在 /etc/profile下设置的

~#:gedit /etc/profile

在最后一行 添加 export PATH=/root/usr/bin/gcc-arm-none-eabi-5_4-2016q3/bin:$PATH
点击保存就好。
使环境变量设置生效
然后重启

~#:source /etc/profile
~#:reboot

当然其他操作,如切换其他版本gcc,推荐博客:http://blog.csdn.net/al86866365/article/details/47424727

  • 下载源码
    源码下载网站:https://github.com/PX4/Hardware
    源码下载链接:https://github.com/PX4/Hardware.git
    操作:

下载

mkdir -p ~/src
cd ~/src
git clone https://github.com/PX4/Firmware.git
cd Firmware
git submodule update --init --recursive
cd ..

编译

cd Firmware
make px4fmu-v2_default

编译成功:
这里写图片描述
找到箭头所指的文件,说明编译成功
到这里,环境搭建完毕就可以进行相应的开发了。

常见错误说明

1 /bin/.arm-none-linux-gnueabi-gcc: not found
环境变量都设置好了,但编译就是找不到
解决:ubuntu下所用工具基本默认安装在/usr/bin下,当然gcc安装在其他地方也行,只要环境变量设置好,但是设置好了,不成功就重新设置吧,按照上面gcc的安装方法
2 apt-get install E: 无法定位软件包问题
出现的原因:修改了某些东西,如环境变量或/var/lib/dpkg/info(因为安装的软件信息都会在这个文件夹下进行记录,如果做了修改或删掉了,对不起那就只能重装所有软件或是重新装系统把)根据情况,再改回来;软件源问题推荐博客:http://blog.csdn.net/wuzuodingfeng/article/details/76155829
其他问题自己各种搜就好
3 CMake error at /platforms/nuttx/Nuttx/CmakeLists.txt:100 XXX
Call stack (most recent call first:)XXX…这样的错误
解决:这个问题也困扰了我好久,这个实在ubuntu14.04上出现的错误,然后我换了16.04的版本就没有这样的错误,我也没搞明白,但是这样就解决了。
4.其他问题应该都有解决办法,参考教程不要混乱,指导自己每一步操作要解决什么,否则出错了,找不到错误的时候,就按原始的方法来吧:重装
5. 不要忽略网速
有些错误问题,其实可以归结到网速
有什么问题可以按照上一篇博客的联系方式进行沟通。
当然还有其他的编译环境搭建方式:
参考博客:
http://blog.csdn.net/Jackey_ONLYFORYOU/article/details/53698650

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

PX4最新版ubuntu编译环境搭建 的相关文章

  • 使用ADB出现了system/bin/sh: adb: not found&system/bin/sh: pull: not found错误

    在使用ADB传送文件的时候出现了system bin sh adb not found amp system bin sh pull not found错误 解决办法 xff1a 可能你在使用adb pull 之前你使用了adb shell
  • 回环检测之决策模型

    前面我们已经讲了如何描述场景 xff0c 让机器人尽可能的了解周围环境 xff0c 那么了解了之后 xff0c 如何判断出是回环的呢 xff1f 本节讨论如何建立决策模型来根据当前场景描述和地图信息识别出可能的闭环 合理的决策模型可有效提高
  • 回环检测之DBoW2

    前面我们已经讲了回环检测中用的一些方法 xff0c 今天主要介绍一下现在用的最多的词袋模型 DBoW2 这里就不在细讲回环检测的定义 xff0c 具体可以看看我的前面的博客 xff0c 而回环检测在SLAM中的作用可以从下面的图片中大致有一
  • 快速解决rosdep update一直不通过问题

    以前安装ROS的时候遇到rosdep update不通过 xff0c 需要很多次测试才能通过 xff0c 能通过完全靠运气 xff0c 也找了网上很多种方法 xff0c 比较麻烦 xff0c 今天这里说一下一位大神帅鱼提供的一个方法 xff
  • Matlab读取文本数据

    用Nastran的时候 xff0c 想把bdf文件里的节点坐标导出来 xff0c 但是坐标的格式很奇怪 xff0c 见下图 xff1a 会发现这种科学计数法中间没有字母E或e xff0c 直接用Matlab中的load函数读取的话 xff0
  • 为学弟学妹熬夜的一份零基础 C++ 开发学习路线

    大家好 xff0c 我是帅地 之前写过几篇学习路线的文章 前端开发学习路线 Java 后端开发学习路线 一般开发岗主流的就是 Java 后台开发 xff0c 前端开发以及 C 43 43 后台开发 xff0c 现在 Go 开发也是越来越多了
  • ars408_ros驱动问题

    0 ars408 ros驱动 mkdir folder mkdir folder src cd folder src git clone https github com sergiocasaspastor myrepository git
  • Tensorflow实战:LSTM原理及实现(详解)

    LSTM规避了标准RNN中梯度爆炸和梯度消失的问题 xff0c 所以会显得更好用 xff0c 学习速度更快 下图是最基本的LSTM单元连接起来的样子 上图为一层LSTM单元连接起来的样子 xff0c 在工业上 xff0c LSTM是可以像一
  • Gazebo版本升级7.0--->7.16

    GPU issues The GPU problems reported in this issue have been solved with this pull request for the gazebo7branch The Gaz
  • 机器人局部动态避障算法dwa解析

    简介 dwa算法全称叫动态窗口法 xff08 dynamic window approach xff09 xff0c 其算法过程主要分为仿真获取机器人的运动轨迹 对轨迹进行评价选择最优轨迹两个主要过程 xff0c 动态窗口表达的是仿真的运动
  • 应届生应该如何准备校招

    大家好 xff0c 我是羽峰 xff0c 今天要和大家分享的是应届生应该如何准备校招 xff0c 希望该文章对一些今年要找工作的朋友有一些帮助 还是老话 xff0c 我是羽峰 xff0c 希望我所分享的文章能为您及更多的朋友带来帮助 欢迎转
  • docker容器迁移到其他服务器

    以把旧服务器的mysql容器迁移到虚拟机上为例 1 旧服务器查看路径映射 首先查看mysql容器的路径映射 span class token function docker span inspect mysql 2 基本数据由旧服务器迁移到
  • 查看msg类型数组的长度

    msg类型数组的使用 需要说明的是std msgs中有些数组用法和C 43 43 标准库中不一样 比如Float32MultiArray xff0c 其定义如下 xff1a std msgs MultiArrayLayout layout
  • ROS 查看tf树

    rosrun rqt tf tree rqt tf tree
  • C++——构造函数后加冒号

    其实冒号后的内容是初始化成员列表 xff0c 一般有三种情况 xff1a 1 对含有对象成员的对象进行初始化 xff0c 例如 xff0c 类 line 有两个私有对象成员 startpoint endpoint line 的构造函数写成
  • Redis——在windows下设置密码

    设置密码有两种方式 1 命令行设置密码 运行cmd切换到redis根目录 xff0c 先启动服务端 gt redis server exe 另开一个cmd切换到redis根目录 xff0c 启动客户端 gt redis cli exe h
  • C++——函数声明省略形参名的用法注意

    函数声明时 xff0c 形参可以没有参数名 xff08 形参 xff09 xff0c 函数定义时 xff0c 一定要有参数名 xff08 形参 xff09 xff0c 函数调用时 xff0c 一定要有参数名 xff08 实参 xff09 i
  • Go——打印变量类型的两种方法

    1 使用reflect的TypeOf方法 模块是 xff1a 34 reflect 34 fmt Println reflect TypeOf var 切片类型的输出 2 使用Printf中的占位符 T 占位符 说明 举例 输出 T 相应值
  • Mybatis——foreach用法

    目录 1 foreach元素的属性 2 foreach时 xff0c collection属性值的三种情况 xff1a 3 代码示例 xff1a 3 1 collection属性值类型为List 使用 64 Param注解自定义keyNam
  • linux学习——(踩坑)语法错误: 未预期的文件结尾

    if eq 3 then if e 34 1 34 then miss1 1 elif e 34 2 34 a e 34 3 34 then miss2and3 1 2 3 elif e 34 2 34 a e 34 3 34 then m

随机推荐