我正在編寫一個使用Qt的跨平臺C++程序,我想在程序中打包/嵌入一些二進制可執行文件。該程序應該能夠在運行時執行這些二進制文件。如何在Qt程序中嵌入二進制可執行文件(在運行時執行)?
我想,我需要使用start()和「:/ ...」符號的QResource和QProcess,但我似乎並沒有得到進程的運行。有什麼我失蹤?它應該像這樣工作嗎?該二進制文件是否需要設置爲可執行文件?
背景:我正在編寫一個使用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"
完美工作。
請向我們提供源代碼。即您使用QResource和QProcess的部分。 – Wildcat 2009-12-21 19:09:53
我已經使用我使用的代碼更新了問題 – jan 2009-12-21 21:22:02