我正在使用Qt编写一个跨平台的C++程序,并希望将多个二进制可执行文件打包/嵌入到程序中。该程序应能够在运行时执行这些二进制文件。
我认为,我需要使用QResource和QProcess,使用start()和“:/…”符号,但我似乎无法让进程运行起来。我是否漏掉了什么?它应该像这样工作吗?二进制文件需要被设置为可执行文件吗?
背景:我正在编写一个使用Git的工具,我不想要求最终用户手动安装Git。
(顺便说一下,我是在Mac OS X上尝试的。)
更新:
我正在使用以下代码(C ++,Qt在Mac OS X上):
Git可执行文件位于项目路径中,我的resources.qrc引用方式如下:
我没有收到错误信息,但程序并未执行。当我将
我认为,我需要使用QResource和QProcess,使用start()和“:/…”符号,但我似乎无法让进程运行起来。我是否漏掉了什么?它应该像这样工作吗?二进制文件需要被设置为可执行文件吗?
背景:我正在编写一个使用Git的工具,我不想要求最终用户手动安装Git。
(顺便说一下,我是在Mac OS X上尝试的。)
更新:
我正在使用以下代码(C ++,Qt在Mac OS X上):
QString program = ":/git";
QStringList arguments;
arguments << "help" << "commit";
myProcess->start(program, arguments);
Git可执行文件位于项目路径中,我的resources.qrc引用方式如下:
<qresource prefix="/">
<file>git</file>
</qresource>
我没有收到错误信息,但程序并未执行。当我将
program
设置为不存在的文件时,行为相同。将 ":/git"
替换为 git 的绝对路径可以完美解决问题。