linux查看pro文件,关于linux:qmake .pro文件未正确解析以生成LD_LIBRARY_PATH

在过去的几天里,我一直在尝试了解qmake的工作原理,以解决我的问题。

我想要一个具有以下结构的项目:

箱子

testjson

LIB

libjson.so

src

testjson.cpp

我只想测试json库。我在Qt Creator 2.3.0中创建了一个新的空项目,并设置了所有设置,以便可执行文件运行。测试了我想要的内容并关闭了该应用程序。

稍后,当我再次打开Qt Creator时,我加载了.pro文件并感到惊讶,当我尝试运行该项目时,出现以下消息:"未指定可执行文件"。 :|在这种情况下,我转到项目选项卡,并手动选择了可执行文件,但是正如预期的那样,当我尝试运行它时,出现以下消息:"加载共享库时出错:libjson.so:无法打开共享库文件:没有这样的文件文件或目录"。由于未设置LD_LIBRARY_PATH,这是预期的(就像我从cli运行它一样)。

似乎.pro文件未正确解析,因为第一次是在我选择"运行"选项卡的项目选项卡上,我会看到一条消息:"正在解析.pro文件",然后运行的配置将被填充,并显示为灰色,因此表示LD_LIBRARY_PATH是Qt Creator在解析.pro文件后添加的。

现在我的问题是:为什么第一次正确解析.pro文件?

这是.pro文件:

!include(../../common.pri){

error(Couldn't find the common.pri file!)

}

TEMPLATE = app

SOURCES += testjson.cpp

CONFIG += console

TARGET = testjson

CONFIG(release, debug|release) {

DESTDIR = $$BinaryDir/Release

} else {

DESTDIR = $$BinaryDir/Debug

}

LIBS += -L$$LibraryDir -ljson

INCLUDEPATH += $$DefaultInclude

DEPENDPATH += $$LibraryDir

PS:解决方案是将LD_LIBRARY_PATH手动添加到建筑环境中,但是我发现这不是正确的方法。

我认为您对qmake(.pro)文件控制的内容和运行时环境控制的内容之间感到困惑。 .pro文件仅指定BUILD环境,而不指定运行时环境。 .pro文件仅在构建过程中使用。

当您从命令行或Qt Creator中运行构建的代码时,您正在处理RUNTIME环境。如果尝试从外壳运行程序,则必须专门指定LD_LIBRARY_PATH。在Qt Creator中,您将必须执行相同的操作。

[我这里只安装了Qt Creator 2.2,但在2.3中应该非常相似]

要设置运行时环境,

选择左侧工具栏中的"项目"图标。

在顶部,选择"运行设置"

在"运行设置"页面上,转到"运行环境"设置,然后单击"详细信息"以显示环境的详细信息。

单击"添加...",然后使用适当的设置添加" LD_LIBRARY_PATH"。

完成后,设置将与项目一起存储。 [设置实际上存储在以" .user"结尾的文件中,而不是在" .pro"文件中。]

当您运行项目时,将使用在"运行设置"下设置的环境,并且您的应用程序应以正确的LD_LIBRARY_PATH开始。

正如我在PS中所说,我已经知道了解决方案,但是我自己手动添加LD_LIBRARY_PATH似乎并不正确。 第二天,Ive从头开始重建项目,添加了库,然后一切正常。 我仍然不知道为什么我在第一个版本中收到了"无法解析.pro文件"消息。 可能与.pro.user文件有关。 但现在一切正常,这很好。

解决方案"将LD_LIBRARY_PATH添加到构建环境"的原因很可能是因为您使用的是默认运行环境设置,即使用构建环境。 它是解决您问题的辅助效果,是解决问题的主要方法。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值