gpt4 book ai didi

qt - 如何在 Qt 程序中嵌入二进制可执行文件(将在运行时执行)?

转载 作者:太空宇宙 更新时间:2023-11-04 13:05:27 25 4
gpt4 key购买 nike

我正在使用 Qt 编写跨平台 C++ 程序我想在程序中打包/嵌入一些二进制可执行文件。该程序应该能够在运行时执行这些二进制文件。

我想,我需要使用 start() 和“:/...”符号的 QResource 和 QProcess,但我似乎没有让进程运行。我有什么想念的吗?它应该像这样工作吗?是否需要将二进制文件设置为可执行文件?

背景:我正在编写一个使用 Git 的工具而且我不想要求最终用户手动安装 Git。

(顺便说一下,在 Mac OS X 上试试这个。)

更新:

我正在使用以下代码(C++,Mac OS X 上的 Qt):

QString program = ":/git";
QStringList arguments;
arguments << "help" << "commit";
myProcess->start(program, arguments);

Git 可执行文件在项目路径中,我的 resources.qrc 是这样引用它的:

<qresource prefix="/">
<file>git</file>
</qresource>

我没有收到错误,但程序没有执行。当我将 program 设置为不存在的文件时,行为是相同的。用 git 的绝对路径替换 ":/git" 效果很好。

最佳答案

您不能直接从资源执行程序。

如果您在资源中有一个程序并且您想要执行它,您首先必须从资源中读取它,将它写入一个文件,使该文件可执行,然后执行它。

此外,当您说您没有收到错误时,这可能意味着您没有正确检查错误。

关于qt - 如何在 Qt 程序中嵌入二进制可执行文件(将在运行时执行)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42626650/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com