最近开始搭建PX4环境,搭建是需要从github下载工程,然后使用语句git submodule update --init --recursive更新工程子模块,但往往由于网络原因这一步需要很久,甚至会失败。因为github是外网,在上面下载代码会受到很大限制,往往会出现下面的问题:

即无法连接到github,查阅了相关资料后,我发现了解决更新子模块失败的方法:
1.打开你下载的PX4源码,即Firmware文件夹,找到其中的.gitmodules,如下图:

2…gitmodules有以上格式,path代表其要更新的子模块位置,url代表从哪个地方下载源码,既然github连接困难,就将url中所有github.com改为github.com.cnpmjs.org,改完后保存

3.保存后CRTL+ALT+T打开终端,然后cd到Firmware文件夹下,运行git submodule sync,将改动更新

4.更新完后,再次运行submodule update --init --recursive,就可以完成PX4子模块更新

后续补充

在后来翻看PX4源码后,我发现除了Firmware主目录文件夹下有.gitmodules文件,在某些子模块也存在,同理,我们也需要修改这些.gitmodules文件,具体做法补充如下

cd PX4源码文件夹/src/drivers/uavcan/libuavcan
gedit .gitmodules

修改.gitmodules文件,将该文件改为如下

[submodule "dsdl"]path = dsdlurl = https://github.com.cnpmjs.org/UAVCAN/dsdlbranch = legacy-v0
[submodule "libuavcan/dsdl_compiler/pyuavcan"]path = libuavcan/dsdl_compiler/pyuavcanurl = https://github.com.cnpmjs.org/UAVCAN/pyuavcan

将子模块更新网站从github.com改为github.com.cnpmjs.org,然后运行

git submodule update --init

接下来,按同样的步骤修改以下文件夹中的.gitmodules文件,每次修改完文件,需要利用git submodule update --init更新一下
需要修改的文件目录如下

cd PX4源码文件夹/src/drivers/uavcan/libuavcan
cd PX4源码文件夹/Tools/jMAVSim
cd PX4源码文件夹/Tools/sitl_gazebo
cd PX4源码文件夹/platforms/qurt/dspal
cd PX4源码文件夹/src/drivers/uavcan/libuavcan/libuavcan/dsdl_compiler/pyuavcan
cd PX4源码文件夹/Tools/sitl_gazebo/external/OpticalFlow

PX4环境git submodule update --init --recursive失败的解决办法相关推荐

  1. 【git新建分支拉取分支】git submodule update --init --recursive

    拉取分支 git submodule update --init --recursive 新建分支 切到当前分支 git checkout 当前分支 从当前分支创建新的分支 git checkout ...

  2. git下载子模块命令git clone --recursive和git submodule update --init

    目录 方法一:git clone --recursive 方法二:git submodule update --init 有时github上的工程可能会包含一些子模块,例如 这时候如果你只是用下面的命 ...

  3. Git:SSL错误导致失败的解决办法

    在IDEA中Pull项目时,开始速度很慢,然后显示失败,看了下控制台的报错信息,显示"error: RPC failed; curl 56 OpenSSL SSL_read: Connect ...

  4. 玩转GIT系列之【git submodule update出错提示子模组未对路径注册】

    今天在github上找到了一个很有意思的项目,叫做listen1[https://github.com/listen1],它是一个开源的项目,可以从各大音乐网站自动化搜索歌曲.避免某个特定的网站因为版 ...

  5. npm install mysql 报错_npm遇到的问题--npm install 执行报错 /bin/git submodule update -q --init --recursive...

    1.执行npm i 安装依赖时,报错:cannot read property 'match' of undefined 据说是npm本地缓存导致 解决方案: rm -rf package-lock. ...

  6. apmserv5.2.6 mysql启动失败_win7(xp) APMServ5.2.6 Apache启动失败,MYSQL启动失败 的解决办法...

    win7(xp) APMServ5.2.6 Apache启动失败,MYSQL启动失败 的解决办法 1.APMServ程序所在路径不能含有汉字和空格.例子:D:\r\APMServ5.2.6\ 2.去掉 ...

  7. win7(xp) APMServ5.2.6 Apache启动失败,MYSQL启动失败 的解决办法

    win7(xp) APMServ5.2.6 Apache启动失败,MYSQL启动失败 的解决办法 1.APMServ程序所在路径不能含有汉字和空格.例子:D:\r\APMServ5.2.6\  2.去 ...

  8. phphstudy运行不了网站_phpStudy访问速度慢和启动失败的解决办法

    下面给大家介绍phpstudy访问速度慢的解决办法. 1.修改mysql数据库链接地址为ip地址127.0.0.1. 2.使用最新版本,这个坑了我好久时间. 下面一段内容是关于phpstudy启动失败 ...

  9. mysqlfront连接MySQL错误_使用MySql-Front远程连接MySQL失败的解决办法

    新安装的mysql默认是root用户,且密码为空,默认端口是3306.通过SSH可以连接并且登录,但是使用MySQL-Front等客户端连接失败. 解决办法: 1.确认Linux防火墙3306端口打开 ...

最新文章

  1. 微信小程序之圆形进度条(自定义组件)
  2. Java——重载和重写
  3. linux系统登陆问题,Linux之登陆问题
  4. VS Code 直接跳到下一行编辑快捷键
  5. Huawei LiteOS 开发指南
  6. iphone label初始化碰到的问题
  7. vue 事件调用 传参_vue如何在父组件指定点击事件后向子组件传递参数并调用子组件的事件?...
  8. Chapter9:Simulink建模与仿真
  9. AFTN和SITA报文简介
  10. 应用软件提示服务器正在运行,服务器正在运行中怎么解决?IE浏览器服务器正在运行中的解决方法...
  11. 2.语音增强短时谱估计算法——幅度谱减法
  12. python语法元素测试_基于python全局设置id 自动化测试元素定位过程解析
  13. 知云文献翻译打不开_一个可以快速翻译浏览英文文献的工具,拿走不谢!
  14. mycat与mysql proxy_高可用Mysql架构_Mycat集群部署(HAProxy + 两台Mycat+Mysql双主双从)...
  15. HTML利用posotion属性定位 小技巧
  16. 基于python实现梯度下降法(GD)在线性回归中的应用(Boston房价预测数据集)
  17. 【Linux】Shell 特殊符号总结 数组
  18. Jupyter中运行.ipynb文件出现cannot import name ‘joblib‘ from ‘sklearn.externals‘
  19. 【博学谷学习记录】超强总结,用心分享|大数据之Presto
  20. html css3加速,10个加速CSS开发的框架

热门文章

  1. VMware vCloud与Zend Server实现PHP应用程序自动化交付
  2. 别把项目成功当目标 (转)
  3. VBS编程基础教程 (第5篇)
  4. be备份mysql_Linux备份和导入Mysql
  5. 【75位联合作者Nature重磅】AI药神:机器学习模型有望提前五年预测白血病!
  6. crazyradio焊接和下载固件过程
  7. 【SICP练习】140 练习3.71
  8. Chapter 15 配置服务器存储和群集 第1课
  9. 标准exception类层次图
  10. python raise语句_Python异常处理,告别xxxxError!