现象展示
在Ubuntu中,安装好Qt之后,可以在系统桌面的左下角找到启动图标
但是,这种方式启动的QtCreator所读取到的环境变量和我们从命令行读取到的不一致:
可以看到,明显少了这个:/opt/ros/humble/bin
因为这个原因,导致我在用cmake编译时一直出问题。
解决办法
直到我用命令行打开QtCreator:
好了,这下子一致了。
原因分析
原因据chatgpt说是:
在Ubuntu中,通过Application中直接点击QtCreator图标打开程序时,启动的是一个新的shell环境,这个环境中没有设置之前在~/.bashrc或者其他文件中配置的环境变量。而如果你使用命令行打开./qtcreator,它会在当前终端窗口下执行,此时终端中已经有了你之前所设置的环境变量。
因此,如果你需要使用某些环境变量,比如说LD_LIBRARY_PATH等,建议你在命令行模式下打开QtCreator,这样可以确保QtCreator环境与当前终端所使用的环境相同。
假如想点击后,也能得到用命令行打开的效果,它说可以:
是的,你可以在点击图标打开QtCreator时也加入额外的环境变量,来达到和在命令行下打开一样的效果。具体方法如下:
打开终端,输入以下命令:
sudo gedit /usr/share/applications/qtcreator.desktop
在文本编辑器中打开qtcreator.desktop文件。
在[Desktop Entry]部分下方添加以下两行内容(如果已经存在则直接修改):
X-GNOME-UsesTerminal=true
Exec=bash -ic "/path/to/qtcreator/bin/qtcreator"
其中/path/to/qtcreator是你安装Qt Creator的路径。这里我们使用bash -ic命令让启动的应用程序沿用当前终端的环境变量。
保存并退出编辑器。
现在你可以从Application中再次点击Qt Creator图标打开程序,它将会以你当前终端所使用的环境变量启动。
请注意,修改/usr/share/applications/目录下的.desktop文件需要root权限,因此你需要输入管理员密码才能保存修改。
实际上,图标是存在这个位置:
/home/yong/.local/share/applications/org.qt-project.qtcreator.desktop
改完之后要重启一下电脑才行。