Path 在路径中找到正在运行的命令?
我正在尝试通过QProcess运行命令,但它不起作用。我的命令类似于utility-someflag/path/to/file。实用程序位于路径中,但是QProcess似乎没有使用此环境变量 命令失败了,我需要指定我想要避免的实用程序的完整路径Path 在路径中找到正在运行的命令?,path,environment-variables,qt5,qprocess,Path,Environment Variables,Qt5,Qprocess,我正在尝试通过QProcess运行命令,但它不起作用。我的命令类似于utility-someflag/path/to/file。实用程序位于路径中,但是QProcess似乎没有使用此环境变量 命令失败了,我需要指定我想要避免的实用程序的完整路径 这有什么办法吗?基本上是让QProcess使用PATH变量的某种方法?所以问题在于它取决于应用程序的启动方式。这在OSX上,但在其他平台上可能类似: 如果它是一个命令行应用程序,并且从终端启动,那么它将可以访问env变量 如果它是从Qt Creator启
这有什么办法吗?基本上是让QProcess使用PATH变量的某种方法?所以问题在于它取决于应用程序的启动方式。这在OSX上,但在其他平台上可能类似: 如果它是一个命令行应用程序,并且从终端启动,那么它将可以访问env变量 如果它是从Qt Creator启动的,它将无法访问任何环境变量 如果它是一个GUI应用程序.app,它将无法访问env变量 在我的例子中,由于它是一个GUI应用程序,所以解决方案是手动更新.app包。首先,文件Info.plist需要从以下位置更改:
<key>CFBundleExecutable</key>
<string>MyApplication</string>
source ~/.bash_配置文件行尤其确保正确设置包括PATH变量在内的所有环境
<key>CFBundleExecutable</key>
<string>MyApplication.sh</string>
#!/bin/sh
SCRIPT_DIR=$(dirname "$0")
source ~/.bash_profile
logger "$SCRIPT_DIR/MyApplication"
exec "$SCRIPT_DIR/MyApplication" $@