Ubuntu16.04下Qt Creator与RViz启动失败问题求助
解决Ubuntu 16.04下QtCreator与ROS工具的Qt库路径冲突问题
我之前也碰到过第三方库乱改系统Qt路径的坑,你的情况根源很明确——安装FLIR Spinnaker库时,spinview_qt_.deb把Qt5.7直接装到了/usr/lib,打乱了系统默认的Qt5.5(来自官方仓库)和ROS Kinetic依赖的库路径优先级,导致QtCreator、rviz等工具找不到对应版本的Qt库。下面给你几个永久解决的方案:
方案1:单个用户永久配置(推荐,不影响其他用户)
这个方法只对你当前用户生效,操作简单:
- 打开用户主目录下的
.bashrc配置文件:nano ~/.bashrc - 在文件末尾添加以下内容,明确指定库加载的优先级,让系统优先搜索官方Qt库和ROS库:
# 修复Spinnaker导致的Qt库路径冲突 export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:/opt/ros/kinetic/lib:$LD_LIBRARY_PATH - 保存并退出编辑器(按
Ctrl+O回车确认保存,Ctrl+X退出),然后让配置立即生效:source ~/.bashrc - 直接启动
qtcreator和rviz测试,应该都能正常运行了。
方案2:全局系统配置(影响所有用户)
如果需要让所有用户都能正常使用这些工具,可以修改系统级的环境变量:
- 编辑系统环境变量文件:
sudo nano /etc/environment - 修改或添加
LD_LIBRARY_PATH行,确保路径顺序正确:LD_LIBRARY_PATH="/usr/lib/x86_64-linux-gnu:/opt/ros/kinetic/lib:$LD_LIBRARY_PATH" - 保存后重启系统,或者让所有用户重新登录,配置就会全局生效。
额外说明:兼顾Spinnaker工具的使用
如果之后需要运行Spinnaker的工具(比如spinview),可以临时指定它需要的Qt5.7路径,避免影响系统默认配置:
LD_LIBRARY_PATH=/usr/lib spinview
原理补充
LD_LIBRARY_PATH是Linux系统加载动态库的搜索路径,系统会按照路径的先后顺序查找库文件。我们把官方Qt库和ROS库的路径放在最前面,就能让系统优先加载正确版本的库,避开Spinnaker安装的Qt5.7干扰。
内容的提问来源于stack exchange,提问作者Martin Herrmann
相关产品推荐
相关产品推荐

