【问题标题】:Executable file didn't work correctly [Linux]可执行文件无法正常工作 [Linux]
【发布时间】:2015-04-23 13:56:47
【问题描述】:

我在 Qt C++ GUI 上编写了一个程序,它根据给定的用户输入生成三个具有正确语法 (C++) 的 .cpp 文件。当我直接从 Qt Creator 启动程序或像脚本一样从控制台运行它时,它会正确地在可执行目录中创建文件:

QDir().mkdir(QDir::currentPath() + "/Files");
QFile outputFile(QDir::currentPath() + "/Files/myFile.cpp");

当我双击可执行文件时,程序启动并正常工作,但它没有创建我的文件。

我正在使用 Linux Debian Squeezy 6.0 和 Qt Creator 4.6.3

【问题讨论】:

  • 您应该使用QCoreApplication::applicationDirPath() 而不是QDir::currentPath()

标签: c++ linux qt user-interface


【解决方案1】:

我认为当您双击可执行文件时,会创建,但不是在所需的目录,因为在这种情况下当前目录是不同的。您应该使用QCoreApplication::applicationDirPath() 而不是QDir::currentPath()

【讨论】:

  • 来自文档的注释:警告:在 Linux 上,此函数将尝试从 /proc 文件系统获取路径。如果失败,则假定 argv[0] 包含可执行文件的绝对文件名。该函数还假定当前目录没有被应用程序更改。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-09
相关资源
最近更新 更多