- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在将一个控制台程序与一个包含文件名行(相对于当前目录)的配置文件移植到 Qt。当我在 QtCreator 中运行/调试 GUI 时,似乎无法从工作目录加载文件。
假设我的文件系统如下:
C:/MyProjectSource
C:/MyProjectSource-Desktop-Debug // <-- created by QtCreator
C:/MyProjectSource-Desktop-Debug/debug/MyProgram.exe // <- my program
C:/MyProjectSource-Desktop-Debug/debug/params.txt // <- program's config
C:/MyProjectSource-Desktop-Debug/debug/cfg/file1.txt // <- extra file
C:/MyProjectSource-Desktop-Debug/debug/cfg/file2.txt // <- extra file
params.txt 看起来像
# other setting
...
cfg/file1.txt # at this line, program crash, saying cannot open file
cfg/file2.txt
...
# other setting
读取file1.txt的代码
std::ifstream ifs(filename); // <-- @runtime, filename = 'cfg/file1.txt'
if (!ifs)
{
// failed inside QtCreator, but fine when start from explorer
EMSG_OPENFILE(filename);
exit(-1);
}
基线:如果可能,不更改控制台程序。那么,如何让QtCreator理解相对路径呢?或者我应该在 params.txt 中强制执行绝对路径?谢谢。
平台:QtCreator 2.6.1、Qt4.8、MinGW64、Win 7
最佳答案
相对路径是相对于当前工作目录,而不是相对于可执行文件所在的目录,所以需要将当前工作目录更改为可执行文件目录,在main函数后面添加这一行即可:
QDir::setCurrent(QCoreApplication::applicationDirPath());
如果您需要从 Qt Creator 设置当前工作目录:项目->运行->你会看到工作目录文本框
然后从浏览按钮将此路径更改为您的可执行文件位置
关于c++ - QtCreator 中的相对路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14975715/
我想给我的一个 friend 一个小项目的发布版本。从 qtcreator 内部启动时它工作得非常好,但在双击 .exe 文件时无法打开。它甚至没有给我错误消息。 现在,当我尝试在我的 exe 文件旁
I have just installed QtCreator 5.0.0. for Windows.我刚刚安装了QtCreator 5.0.0。适用于Windows。 Since I pre
我将在基于子目录模板的 QtCreator 项目中实现以下层次结构: 项目: subproject1 - 静态库 subproject2 - 静态库 subproject3 - 单元测试可执行 唯一的
有没有办法将命令行参数发送到 QtCreator 中正在调试的程序? 最佳答案 进入 QtCreator 左侧的“项目”部分,然后进入“运行设置”选项卡。有一个参数行编辑,您可以在其中放置启动应用程序
QtCreator 资源编辑器自 3.1 版本以来发生了重大变化。新版本在项目树中显示资源文件,我认为这是一个好主意,因为现在无需打开编辑器即可完成大多数操作。 但是这里好像少了点什么。以前的版本在资
我在 Ubuntu 11.10 上安装了 qtcreator sudo apt-get install qtcreator 安装的版本有:QT Creator 2.2.1、QT 4.7.3 当我启动
在 XCode 中要移动选定的 block ,您可以按“Cmd+]”向右和“Cmd+[”向左,QtCreator 中的哪个热键可以做到这一点?在帮助中我没有找到这个函数。 最佳答案 正确答案应该是ta
我想向 QtCreator 添加自定义选项页面。项目向导可以轻松创建通用 QtCreator 插件。但是,如何从那里着手并添加新功能和新小部件?它只是很薄,如果有记录的话。我发现的关于如何编写 QtC
我正在尝试在 Windows 上使用 Qt creator,当我尝试开始调试时,它显示“未设置调试器”。我该如何配置? 最佳答案 这记录在 Setting up the Debugger 上的 Qt
使用带有 CDB 调试器的 Win7 下的 QtCreator 2.8,我在 应用输出 标签我所有的 fprintf(stdout) 东西!? 我试过: fprintf(stderr, "...");
我有一个 Qmake subdirs 项目,在顶级 .pro 文件中,我指定了一个额外的目标,如下所示: gruntbuild.target = gruntbuild gruntbuild.comma
我正在学习在lubuntu 17.10上使用Qtcreator,并希望将一些输出输出到终端。我遇到了麻烦,因此将程序简化为基本的Hello World,以将单个字符串输出到终端。目前,我正在使用以下代
是否可以通过使用“测试” View (例如,点击“运行所有测试”)将googletest可执行文件部署到远程设备? 在我的情况下,应正确配置部署,因为在单击“运行”或“开始调试”后,可执行文件已部署并
我想在我的项目中使用 gcc6,并使用 qtcreator 作为 ide。我的项目使用 cmake。 在“build&run”->“compiler”中,我添加了 g++-6 作为编译器“gcc6”。
我正在尝试使用 gcc 4.7 构建 QtCreator,但出现以下错误: 关键是我卸载了 QtSDK,而是从源代码构建了 Qt(但不是我现在正在做的 QtCreator)。我已经检查了 PATH 变
我的QtCreator找不到我安装的新版本的cmake(我删除了旧的)。 我所能做的就是在 Preferences|Build&Run|CMake 中将 cmake 的路径设置为 /Applicati
我正在尝试添加 OpenXLSX到我的 QtCreator 项目但关注 this guide我似乎无法让 QtCreator 找到头文件。 QtCreator 手册提到了这个库不使用的 .lib 文件
我以前有 Qt 的安装包。/home/star/Downloads/sandeep/Untitled Folder/qt-creator-opensource-linux-x86_64-4.2.1(1
我是 Qt 的新手,对 C++ 也不是很熟悉。 我创建了简单的 Qt GUI 应用程序,但后来我不得不在 QLabel 类型的对象上添加 mousepressevent 函数,所以我创建了具有头文件的
我尝试将目标文件从创建目录复制到我的项目自己的子目录。看起来像 Project/my.pro Project/libs/mylib.so Project/libs/mylibtool.so Proje
我是一名优秀的程序员,十分优秀!