【发布时间】:2018-03-22 19:07:48
【问题描述】:
我在 MacOS 10.13 上遇到了奇怪的情况,找不到它的根源。
我有一个捆绑包中的 32 位 Qt 应用程序。由于 MacOS 对其中一项操作的限制,我需要启动一个小的 64 位控制台二进制文件。这个控制台二进制文件放在 Contents/MacOS 中,我使用 QProcess 启动它。
如果我从 IDE 运行主应用程序,一切正常。另外,如果我打开终端,cd 到 Contents/MacOS 并直接运行主应用程序,一切都很好。
但是一旦我使用“open myApp.app”或通过 UI 启动它,QProcess exitCode() 就会返回 255,这似乎意味着崩溃。
子进程启动代码:
QProcess p;
p.start("./papply", QStringList() << osid << filepath);
p.waitForFinished(5000);
qDebug() << p.readAllStandardOutput();
qDebug() << p.readAllStandardError();
qDebug() << p.state();
if(p.state()==QProcess::Running)
{
qDebug() << "peapply freezed - kill";
p.kill();
return false;
}
qDebug() << "Apply" << osid << filepath << "=" << p.exitCode();
return p.exitCode()==0;
任何帮助将不胜感激。
【问题讨论】:
-
如果您更改为使用 absolute 路径到要执行的程序怎么办?如果您从 UI 运行,则“当前工作目录”很可能不正确。
-
@Someprogrammerdude 谢谢,我现在试试
-
@Someprogrammerdude 绝对路径有帮助。请将其作为要选择的答案。