Qt을 사용하여 크로스 플랫폼 C++ 프로그램을 작성 중이며 프로그램 내에 여러 바이너리 실행 파일을 패키지/임베드하고 싶습니다. 프로그램은 런타임에 이러한 바이너리를 실행할 수 있어야합니다.Qt 프로그램에 실행 파일을 실행 파일로 포함하려면 어떻게해야합니까?
나는 QResource와 QProcess가 start()와 ":/..."표기법을 사용하여 필요하다고 생각했지만 프로세스를 실행하지 않는 것 같습니다. 내가 누락 된 것이 있습니까? 이런 식으로 작동해야합니까? 바이너리를 실행 파일로 설정해야합니까?
배경 : Git을 사용하는 도구를 작성 중이므로 최종 사용자가 Git을 수동으로 설치하지 않아도됩니다.
(BTW, 맥 OS X에서이 작업을 시도.)업데이트 :
나는 다음과 같은 코드를 사용하고 (C++, Qt는 맥 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
사용하고있는 코드로 질문을 업데이트했습니다. – jan