【Ardupilot二次开发】固件源码编译报错总结
问题一
pip3 install --user -U pip packaging setuptools wheelERROR: Can not perform a '--user' install. User site-packages are not visible in this virtualenv.
通过如下指令可得知现在的 python3/pip3 默认指向 ESP-IDF 的 python_env(虚拟环境)
lafia@lafia-virtual-machine:~/ardupilot$ which -a python3which -a pip3python3 -c "import sys; print('executable:',sys.executable); print('prefix:',sys.prefix); print('base_prefix:',getattr(sys,'base_prefix',None))"pip3 -V/home/lafia/.espressif/python_env/idf5.2_py3.10_env/bin/python3/usr/bin/python3/bin/python3/home/lafia/.espressif/python_env/idf5.2_py3.10_env/bin/pip3/home/lafia/.local/bin/pip3/usr/local/bin/pip3/usr/bin/pip3/bin/pip3executable: /home/lafia/.espressif/python_env/idf5.2_py3.10_env/bin/python3prefix: /home/lafia/.espressif/python_env/idf5.2_py3.10_envbase_prefix: /usrpip 25.3 from /home/lafia/.espressif/python_env/idf5.2_py3.10_env/lib/python3.10/site-packages/pip (python 3.10)
解决方法
cd /home/lafia/ardupilotPATH="/usr/bin:/bin" PIP_USER_ARGUMENT="" bash Tools/environment_install/install-prereqs-ubuntu.sh -y
问题2
ChibiOS build requires g++ version 10.2.1 or later, found 9.3.1(complete log in /home/lafia/ardupilot/build/config.log)
解决方法
更新g++
sudo apt-get install g++-10
打开~/.bashrc,在文件最下方添加路径,防止使用默认ccache路径下的g++
# ardupilot changeexport PATH=/usr/bin:$PATH
生效新更改的bashrc
source ~/.bashrc
查看ccache路径是否为/usr/bin/ccache
which ccache
再次确认g++路径和版本是否符合大于10.2.1版本且路径和输出内容里的路径一致
which g++g++ --version
输出内容:
/usr/bin/g++g++ (Ubuntu 10.5.0-1ubuntu1~22.04.2) 10.5.0Copyright (C) 2020 Free Software Foundation, Inc.This is free software; see the source for copying conditions. There is NOwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
清除构建
./waf distclean
确保在 waf 配置期间使用的是正确的 g++-10 版本,且通过 which g++ 和 g++ --version 确认它指向 /usr/bin/g++-10
这一步很重要!不然通过如上做法仍然会导致报错无法解决
export CC=/usr/bin/gcc-10export CXX=/usr/bin/g++-10
最终编译通过最后一行显示:’configure’ finished successfully (0.967s)则说明编译成功
夜雨聆风
