QProcess 不适用于“~”符号

QProcess doesn't work with "~" symbol

我想使用 QProcess 启动一个可执行文件,假设它位于主目录中。

以下代码有效:

    QProcess process;
    QString cmd = qgetenv("HOME") + "/executableFile";
    process.start(cmd);

但是,如果我用“~”来代表主目录,它就不行了:

    QString cmd = "~/executableFile";

也许这是一个愚蠢的问题,但我真的很想知道为什么。 希望得到你的帮助。谢谢!

~ 是由 shell.

处理的特殊字符
$ echo ~
/home/jbm

但是当你使用 QProcess 时,没有 shell 这样的东西来启动你的进程(只是一个环境,这是不一样的),因此“~”没有被处理,而是被视为字符文字,实际上是可执行文件路径的一部分。