如何处理构建目录中的文件?

时间:2015-02-23 11:43:50

标签: c++ qt

我正在尝试读取/修改构建目录中的文件,即:

    std::ifstream file( "config.conf" );

只要我从构建目录(./executable)中运行程序,这样就可以正常工作 但是当试图通过/ home / user / build / executable启动它时,我得到“分段错误”

当我使用完整目录

时,这不会发生
    std::ifstream file( "/home/user/build/config.conf" );

但我需要它是动态的。

实现这一目标的正确方法是什么? 我正在使用QT Creator,我将这些文件包含在项目中。

2 个答案:

答案 0 :(得分:1)

std::ifstream file(QCoreApplication::applicationDirPath().append("/config.conf"));

答案 1 :(得分:0)

正确而且我说大多数经Qt批准的方法是将您的文件添加到.qrc资源文件并将该文件直接嵌入到您的应用程序中,然后您可以从应用程序内部访问它(无论从哪里启动可执行文件)只需在其路径前加冒号即可。

有关此内容的更多信息:http://qt-project.org/doc/qt-4.8/resources.html