8

阿木币

2

精华

10 小时

在线时间

版主

Rank: 7Rank: 7Rank: 7

发表于 2019-4-2 15:53:48 4641 浏览 4 回复

【PX4编译问题】关于编译如何不更新submodul的问题

  • 谢谢查看,我现在使用了之前的ecl版本,如图,我现在的px4固件版本为V1.8.2,我替换了ecl版本,但是无法通过编译,请问这个问题该如何解决呢?能提供一个思路或者提示。谢谢!!!
Screenshot from 2019-04-02 15-50-00.png

扫一扫浏览分享
回复

使用道具 举报

8

阿木币

2

精华

10 小时

在线时间

版主

Rank: 7Rank: 7Rank: 7

 楼主| 发表于 2019-4-2 16:04:30
我该更改哪些文件才不会受到这个版本对于submodul的限制
回复 点赞

使用道具 举报

8

阿木币

2

精华

10 小时

在线时间

版主

Rank: 7Rank: 7Rank: 7

 楼主| 发表于 2019-4-2 16:19:51
进入到src/lib/ecl文件之中,用命令git add ecl && git commit -m 'Updated ecl'可以解决完成编译,但是除了这种方法相当于是在版本添加了一条新的log记录,请问还有没有其他方法呢?谢谢
回复 点赞

使用道具 举报

8

阿木币

2

精华

10 小时

在线时间

版主

Rank: 7Rank: 7Rank: 7

 楼主| 发表于 2019-4-2 22:23:56
其实我想知道是哪个地方或者脚本在控制着这些编译,我可以将这些提示或者问题直接修改
回复 点赞

使用道具 举报

28

阿木币

0

精华

9 小时

在线时间

应届白菜

Rank: 1

发表于 2019-4-2 22:24:49
本帖最后由 AmovlabAbner 于 2019-4-2 22:27 编辑

如果你更新了你的子模式,那么最科学的做法就是你需要更新你对应的子模块的commit 号。
以你说的ecl库为例,
在 Fimware的文件夹下,git status的时候,如果有
  1. modified:   src/lib/ecl (new commits)
复制代码

是红色的。那么

你改动了你的ecl的代码或者你的子模块的代码没有与主文件对应的commit 不匹配。
那么需要你自己手动的加上commit号. 首先是在ecl 库下,把你改动的文件写一个commit。然后在你的主模块下,以Firmware的文件夹下加上commit,这个commit对应的是你改动的ecl库的代码。
以上是因为PX4的代码编译过程中会去强制的检测子模块的代码是不是有了变动。当然这个检测主要是对commit的检测,如果你的子模块的commit号与之前主模块对ecl的commit 号是一一对应的,你是不需要在子模块新写入commit的,只有他们的commit的不对应的时候,才需要你的改动。
1554214617.png
回复 点赞

使用道具 举报

返回列表
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表