qmake .pro文件未正确parsing以生成LD_LIBRARY_PATH

我一直在努力在最后几天了解如何qmake作品买我卡住了。 我想要一个具有以下结构的项目:

  • 箱子
    • testjson
  • LIB
    • libjson.so
  • SRC
    • testjson.cpp

我想要的只是testingjson库。 我已经在Qt Creator 2.3.0中创build了一个新的空项目,并设置了所有的设置,以便可执行文件运行。 testing了我想要的并closures了应用程序。

后来,当我再次打开Qt Creator的时候,我加载了.pro文件,当我尝试运行这个项目的时候,我得到这个消息:“没有指定可执行文件”。 :| 在这种情况下,我去了项目选项卡,并手动select可执行文件,但正如所料,当我试图运行它,我得到这个消息“加载共享库时出错:libjson.so:无法打开共享对象文件:没有这样的文件或目录“。 因为没有设置LD_LIBRARY_PATH(这就像我从cli运行它),所以期待。

它看起来像.pro文件没有被正确parsing,因为第一次,在我select运行选项卡的项目选项卡上,我会看到一条消息:“parsing.pro文件”,然后运行configuration将得到填充,并且变灰,所以这意味着在parsing.pro文件之后,Qt Creator添加了LD_LIBRARY_PATH。

现在我的任务是:为什么第一次正确parsing.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到build筑环境,但我觉得这不是正确的方法。

Solutions Collecting From Web of "qmake .pro文件未正确parsing以生成LD_LIBRARY_PATH"

我认为你对qmake(.pro)文件所控制的内容与运行时环境所控制的内容之间存在混淆。 .pro文件只是指定了BUILD环境,而不是运行环境。 .pro文件仅在构建过程中使用。

当你运行内置代码时,无论是从命令行还是从Qt Creator中运行,你都在处理RUNTIME环境。 如果您尝试从shell运行程序,则必须专门指定LD_LIBRARY_PATH。 从Qt Creator中,你将不得不做同样的事情。

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

要设置运行时环境,

  1. 选择左侧工具栏中的“项目”图标。
  2. 在顶部,选择“运行设置”
  3. 在“运行设置”页面上,进入“运行环境”设置,然后单击“详细信息”以显示环境的详细信息。
  4. 点击“添加…”,并添加适当的设置“LD_LIBRARY_PATH”。

完成后,设置将与您的项目一起存储。 [这些设置实际上存储在一个带有“.user”结尾的文件中,而不是“.pro”文件中。]

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