调试中的QtCreator环境变量

3
我正在使用QtCreator 3.4.0在Debian 8下开发应用程序。该应用程序使用一些共享库,我不想将它们放在标准路径下,如/usr/local/lib。
QtCreator将这些路径添加到LD_LIBRARY_PATH环境变量中。在没有连接调试器的情况下运行应用程序(ctrl + R)时,它能正常工作,但是在启动调试器(F5)时却无法工作。如果选择“在终端中运行”复选框,则也可以工作。
问题是:是否可以配置creator在调试时导出LD_LIBRARY_PATH而不是在终端中运行,并且如何操作?

如果您正在使用qtcreator的“项目/构建和运行/系统环境”,那么您需要为每个构建配置单独设置手动环境变量。 - Amartel
问题出在一个配置文件中 - debug。唯一的区别是是否勾选了“在终端中运行”。看起来,如果不使用终端启动程序,带有 LD_LIBRARY_PATH 的会话会在程序启动之前结束。 - Oleg Glazov
我使用QtCreator 3.3.0。在“项目/构建和运行”中,我切换到“运行”,打开了“运行环境”,在组合框中选择了“系统环境”,并编辑了“LD_LIBRARY_PATH”(删除所需路径)。无论是否选中“在终端中运行”复选框,都产生了预期的效果。尝试做同样的事情。 - Amartel
事实上,从“LD_LIBRARY_PATH”中删除所需路径会导致应用程序在之前启动时无法启动,但在它没有启动的情况下并没有帮助。看起来,GDB使用自己的环境,其中不包括“LD_LIBRARY_PATH”。我将尝试使用自定义运行脚本手动填充“LD_LIBRARY_PATH”。 - Oleg Glazov
1个回答

2

也许你很久以前就解决了这个问题,但我今天遇到了同样的问题,通过打开工具/选项对话框,然后打开调试器部分和GDB选项卡来解决它。
附加启动命令字段中,我添加了以下内容:

set environment LD_LIBRARY_PATH /usr/local/lib/

此外,我需要在项目/构建和运行中设置在终端中运行选项。
现在我能够以调试模式运行程序(当然,在构建过程中我需要添加-g)。
有趣的是,当我尝试在终端中使用gdb命令时,它并不起作用...

1
问题明确指出“不在终端运行”。 - Thalia
这在最新的QtCreator(4.15)中可行,无需勾选“在终端中运行”。 - automorphic

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接