PX4在Ubuntu系统运行编译常见出错一般套路

文章讲述了在遇到PX4服务器连接困难导致文件夹下载不完整的问题时,如何手动检查并重新clone相关子模块的方法,包括查找`.gitmodules`文件中的链接。

遇到这种一般是因为PX4服务器在国外,国内连接困难导致有一些文件夹没有下载完全,或者完全是空壳子导致。

通用解决方法
我们可以去到对应模块目录下(例如文件夹/home/你自己的用户名/PX4-Autopilot/src/modules/microdds_client/Micro-XRCE-DDS-Client,对应上面第三种报错),发现里面只有一个文件。这个文件夹的存在让github以为我们下载好了,但实际上并没有下载好,于是我们需要手动重新clone该子模块。
PX4需要的子模块及其链接能在/home/你自己的用户名/PX4-Autopilot/.gitmodules文件里找到。
以该子模块为例,我们能在文件中找到以下内容

[submodule "src/modules/microdds_client/Micro-XRCE-DDS-Client"]
    path = src/modules/microdds_client/Micro-XRCE-DDS-Client
    url = https://github.com/PX4/Micro-XRCE-DDS-Client.git
    branch = px4

于是我们可以进入到目录/home/你自己的用户名/PX4-Autopilot/src/modules/microdds_client将文件夹Micro-XRCE-DDS-Client删除,并在当前目录下开启终端,执行命令:
git clone https://github.com/PX4/Micro-XRCE-DDS-Client.git
然后回到PX4-Autopilot目录下再次尝试编译。

类似的在子模块的子模块也可能出现未成功下载的情况,同理找到对应文件夹下的.gitmodules文件里的子模块链接手动下载即可。
————————————————
版权声明:本文为优快云博主「理想主义者的胜利」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/wmj_studying/article/details/130089119

 

这里摘自有一篇价值不错的博客,向大家推荐一下

http://t.csdnimg.cn/CjXzR

 

### 解决 Ubuntu 20.04PX4 固件编译错误 #### 安装依赖项 确保所有必要的依赖项已正确安装。这一步骤对于避免后续编译过程中可能出现的许多常见问题是至关重要的。通过运行以下命令来设置开发环境: ```bash cd ~/PX4-Autopilot bash ./Tools/setup/ubuntu.sh ``` 此脚本会自动检测并尝试修复缺失的软件包,但有时可能仍需手动干预[^1]。 #### 处理特定错误 如果在执行上述命令后仍然遇到问题,则可以考虑使用带有 `--fix-missing` 参数再次运行该脚本来强制重新安装任何丢失的关键组件: ```bash bash ./PX4-Autopilot/Tools/setup/ubuntu.sh --fix-missing ``` 这种方法有助于解决由于某些库未被正确识别而导致的编译失败情况[^4]。 #### 验证Git仓库克隆完整性 确认 Git 存储库是以递归方式克隆下来的,这样能保证子模块也被一同下载下来。如果不完整可能会导致链接时找不到文件等问题发生。正确的做法应该是按照如下方式进行初始化操作: ```bash git clone https://github.com/PX4/PX4-Autopilot.git --recursive ``` 当首次获取源码或是更新到新版本之后都应该重复这一过程以保持同步状态良好[^3]。 #### 编译前准备 为了提高成功率,在正式开始构建之前建议先清理旧有的build目录,并且关闭不必要的后台程序和服务以免占用过多资源影响效率。具体措施包括但不限于删除之前的 build 文件夹(`rm -rf build`) 和重启计算机等简单有效的手段。 #### 使用Ninja加速编译 考虑到默认Makefile生成器速度较慢的特点,推荐切换至更高效的 Ninja 构建系统来进行最终的产品化工作。可以通过修改 CMakeLists.txt 或者直接指定参数 `-G "Ninja"` 来启用它。 ```bash make px4_sitl_default gazebo_iris__empty_world -j8 ``` 这里假设目标平台为 SITL (Software In The Loop),并且选择了 Gazebo作为飞行模拟器;同时指定了八个线程并发作业(-j8)加快整个流程进度。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值