如何在QT Project的输出版本中包含json文件

时间:2014-03-11 01:31:33

标签: c++ qt qt5 qmake

我是QT Creator的新手。我已经将一个.json文件和几个.txt文件添加到我的QT C ++项目中,我可以在项目窗口中看到这些文件。当我清理,运行qmake然后构建所有,我希望这些文件被复制到我的输出目录,但它们不在那里。我检查了我的.pro文件,我确实有条目

OTHER_FILES + = \     MyJsonFile.json \     MyTxtFile.txt \     的ReadMe.txt (注意:每个文件名都在一个单独的行上)

在构建构建时,如何将这些文件复制到输出目录中?我希望程序一启动就可以访问它们。我在QT文档中看到它说你可以添加新的>一般>文本文件,但文档只说你可以在项目窗口中看到该文件。他们没有解释如何让他们复制到你的构建,我无法在任何地方找到答案。我在Windows 7机顶盒上使用基于QT 5.2.1的QT Creator 3.0.1。感谢您提供任何指导。

编辑:P.S。我希望我可以将json和文本文件保留在应用程序之外,以便我可以在运行时或程序执行之间更改文件中的值,并让项目在启动时拉出新值。

2 个答案:

答案 0 :(得分:2)

构建和安装目录是单独的概念。如果你只是构建,你不应该期望实际安装任何东西。

在Qt Creator中,当你有一个基于qmake的项目时,默认的构建设置会调用make。要安装,您需要调用make install。这可以作为项目的“构建和运行”选项卡中的附加构建步骤添加。

使用qmake时,安装目录没有默认位置,并且没有声明要安装的对象,因此默认情况下make install是无操作。

要安装的文件必须是:

  1. 设置为qmake对象。
  2. 必须将对象添加到INSTALLS变量。
  3. 例如:

    # Sets the default installation prefix to the build directory.
    # This is the same default that Qt's configuration process uses.
    !defined(PREFIX,var): PREFIX = $$OUT_PWD
    
    MY_RESOURCES = \
      MyJsonFile.json \
      MyTxtFile.txt \
      ReadMe.txt
    
    OTHER_SOURCES += $$MY_RESOURCES
    
    # Object describing the resources to install
    my_resources.path = $$PREFIX/share/myproject
    my_resources.files = $$MY_RESOURCES
    
    # The automatically generated object describing the target.
    target.path = $$PREFIX/bin/myproject
    
    # Declare my_resources and target objects to be installed.
    INSTALLS += my_resources target
    

    用户或包管理器脚本应该给出 qmake所需的安装前缀。完成了完整的构建 一个空的构建目录(所谓的影子构建)看起来像:

    # on Unix
    qmake "PREFIX=/usr/local" /sourcedir/myproject.pro
    # on Windows (the installation into Program Files won't
    # be done by make, but by an installer!)
    qmake /sourcedir/myproject.pro
    make
    make install
    

答案 1 :(得分:0)

我认为您需要使用资源文件。只需创建一个资源文件并将文件添加到其中。构建应用程序时,您将始终在可执行文件中包含这些文件。 说实话,我不知道如何使用QtCreator,因为我一直使用eclipse与插件。我可以建议阅读一篇文章:Managing Resources

修改 在我回答之后,OP告诉我那些文件将在运行时更改..所以我的回答显然不是他想要的。有人可以告诉我该怎么做这个答案?感谢。