时间点还是以现在这个时间点为准,因为暂时以我目前的能力在ubuntu下切换交叉编译工具的版本是一件不太好操作的事情,所以先放结论:暂时折中的办法是做双系统,一个ubuntu专门用来做px4的开发,一个win10专门做ardupilot的开发.原因放在后边.
1.px4项目是一个原生对linux支持友好的项目,所以放在ubuntu下做,对交叉编译工具的支持也相对靠前(话说我现在感觉linux里的生态还真…本着能凑合就凑合的原则,没有最老,只有更老…).
2.然后是折腾了两天的apm的问题,因为我的ubuntu用的是5.4版本的交叉编译器,而apm在编译的时候只支持到几个特定版本号的交叉编译器,最高也就支持到4.9.3,简直恶心.会出现编译的兼容性问题(说好的向下兼容呢!),我又不太熟悉所谓的环境变量修改(就是不用哪个环境变量就注释掉哪个的方式修改所需的交叉编译器,但是我现在并没有在profile里看见5.4的环境变量,也不知道去哪里注释这个环境变量),生怕把系统搞坏,这个问题等将来我换块大的ssd用虚拟机再试着解决一下吧.
不合适的开发环境会出现一大堆编译问题,包括但不限于以上所说的交叉编译器版本问题,还有编译过程中编译所定位的目录不同导致的目录不存在等问题,肿之是五花八门,像我还出现了明明安装了不能导入future库卸载pip又重装还是不行,等等,肿之,经常看看release是个好习惯,经常去issue里自己找问题的解决办法是个好问题(要不然人家怎么把issue放在第二项呢).
那么这些问题到底该怎么解决呢?
其实ardupilot项目组一直在维护win下的pixhwak工具链:
http://firmware.ap.ardupilot.org/
Tools 里有个 Px4-tools,点进去最上边(至少在现在这个时间里是)是4.9的交叉编译器,下边是windows下集成好各个版本的的工具链(所以不用配置环境,你只要保证这个工具链编译的版本不太老就行了),这个latest大概去年十月刚刚更新(我居然有一种他们更新很勤快的感觉!),所以应该还是经过时间的检验的,要不然肯定会有间隔比较小的latest吧(反过来想,那岂不是显得他们就更新的更勤快了!)
虽然这俩项目组相互使拌子都不兼容对面的开发环境,但是这个工具链怎么是由apm维护的!真是醉了.
不过好在问题解决,就是在较新版本的工具链编译较新版本的工程而已,转了一个大圈,结果又绕回来了……