我正在尝试读取/修改构建目录中的文件,即:
std::ifstream file( "config.conf" );
只要我从构建目录(./executable)中运行程序,这样就可以正常工作 但是当试图通过/ home / user / build / executable启动它时,我得到“分段错误”
当我使用完整目录
时,这不会发生 std::ifstream file( "/home/user/build/config.conf" );
但我需要它是动态的。
实现这一目标的正确方法是什么? 我正在使用QT Creator,我将这些文件包含在项目中。
答案 0 :(得分:1)
std::ifstream file(QCoreApplication::applicationDirPath().append("/config.conf"));
答案 1 :(得分:0)
正确而且我说大多数经Qt批准的方法是将您的文件添加到.qrc资源文件并将该文件直接嵌入到您的应用程序中,然后您可以从应用程序内部访问它(无论从哪里启动可执行文件)只需在其路径前加冒号即可。