Я пишу кроссплатформенную программу на C ++, используя Qt , и я хочу упаковать / встроить несколько двоичных исполняемых файлов в программу. Программа должна иметь возможность выполнять эти двоичные файлы во время выполнения.
Я подумал, что мне понадобятся 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 работает отлично.