我正在使用Qt编写一个跨平台的C++程序,我想在程序中打包/嵌入一些二进制可执行文件.该程序应该能够在运行时执行这些二进制文件.
我想,我需要使用start()和":/ ..."表示法的QResource和QProcess,但我似乎没有让进程运行.有什么我想念的吗?它应该像这样工作吗?二进制文件是否需要设置为可执行文件?
背景:我正在编写一个使用Git的工具,我不想让最终用户手动安装Git.
(在Mac OS X上尝试这个,BTW.)
更新:
我使用以下代码(C++,Mac OS X上的Qt):
QString program = ":/git";
QStringList arguments;
arguments << "help" << "commit";
myProcess->start(program, arguments);
Run Code Online (Sandbox Code Playgroud)
Git可执行文件位于项目路径中,我的resources.qrc引用它,如下所示:
<qresource prefix="/">
<file>git</file>
</qresource>
Run Code Online (Sandbox Code Playgroud)
我没有收到错误,但程序没有执行.当我设置program为不存在的文件时,行为是相同的.":/git"用绝对路径替换git非常有效.