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"
と、完全に機能します。