如何永久设置BOOST_ROOT解决Ubuntu20.04编译Nav2时Boost依赖报错问题
问题解决方法
方案1:全局设置BOOST_ROOT环境变量(永久生效适配所有编译)
编辑当前用户的shell配置文件:
- 若使用bash:执行
nano ~/.bashrc - 若使用zsh:执行
nano ~/.zshrc
在文件末尾添加如下内容:
export BOOST_ROOT=/usr
保存退出后执行source ~/.bashrc(对应zsh则替换为对应的配置文件路径)即可立即生效,后续所有编译任务都会自动读取该环境变量。
方案2:仅针对colcon编译设置默认参数(不影响其他CMake项目)
在用户根目录下创建colcon默认配置文件:
mkdir -p ~/.colcon nano ~/.colcon/defaults.yaml
写入如下配置:
build: cmake-args: - -DBOOST_ROOT=/usr - -DBoost_NO_BOOST_CMAKE=ON
保存后后续所有colcon build命令都会自动携带上述CMake参数,无需手动输入。
临时验证方案
如果只想先测试问题是否由BOOST_ROOT为空导致,可直接执行单次编译命令验证:
colcon build --symlink-install --cmake-args -DBOOST_ROOT=/usr -DBoost_NO_BOOST_CMAKE=ON
额外排查项
如果上述方案仍无效,可检查是否存在多余的Boost配置文件干扰查找逻辑:
执行命令find /usr -name "boost_program_options-config.cmake",删除所有不在/usr/lib/x86_64-linux-gnu/cmake/路径下的配置文件,再尝试编译即可。
内容的提问来源于stack exchange,提问作者jojo_Aero_smith_the_dummy
相关产品推荐
相关产品推荐

