一、前情提要
最近工作又要开始搞PX4的开发,正好读研时有现成的环境(Ubuntu18.04LTS),本着能不折腾就不折腾的原则,直接下载了最新版本的PX4源码进行编译测试(v1.16.0-alpha2-84-g091974e6c5),随便编了个版本(px4_fmu-v3_default)结果编译报错,报错内容如下:
/PX4-Autopilot/platforms/nuttx/NuttX/include/cxx/cmath:60:13: error: conflicting declaration of C function 'bool std::isfinite(double)'
inline bool isfinite(double value) { return __builtin_isfinite(value); }
^~~~~~~~
试了老代码(v1.11)编译是ok的,所以怀疑可能是编译器的问题。多方查找解决办法并尝试,终于解决,现把解决办法分享出来以供大家参考。
二、解决办法
一言以蔽之:就是检查编译器太老了,更新即可!
在谷歌上搜索找到相同报错,这个老哥一语道破:
可