【发布时间】:2018-03-09 09:35:11
【问题描述】:
由于某种原因,我无法在 Ubuntu 上使用 QProcess 启动进程,我不明白为什么...
int main(int argc, char *argv[])
{
//Run the process:
QString procName = "./path/to/executable/Individual";
QProcess *proc = new QProcess();
proc->start(procName);
if(!proc->waitForStarted())
{
std::cout<<"Fail!"<<std::endl;
getchar();
return 0;
}
int exitCode = proc->exitCode();
std::cout<<"Exit code: "<<exitCode<<std::endl;
getchar();
return 0;
}
这总是将“失败”打印到终端。
如果我在终端中输入./path/to/executable/Individual,它工作得很好,所以路径似乎是正确的。
谁能告诉我为什么程序无法启动?
我在 Ubuntu 上使用 Qt 版本 5.9.1。
【问题讨论】:
-
问题出在应用程序的当前工作目录中。当您使用相对路径时,它无法找到您的可执行文件。尝试改用完整路径或从正确的位置启动应用程序。
-
您应该使用QFileInfo::exists() 确保您的程序可以访问
Individual -
@vahancho:不,路径是绝对的(以 /home/[用户名]/ 开头)
-
@Antwane:刚试了一下,qFileInfo说文件存在。
-
当然,以点开头的路径不是绝对的,而是相对的