안녕하세요, stackoverflow 사용자,포장되지 않은 파이프 기호가있는 QProcess | in 인수 목록
Windows에서 QProcess를 사용하여 명령을 실행하는 동안 문제가 발생했습니다. 하나의 주장을 해석하는 것 외에는 모든 것이 잘 작동합니다.
Visual Studio 2008 솔루션을 빌드하려면 vcbuild.exe를 호출합니다. 이 호출은 다음과 같습니다
QString program = "cmd.exe";
QStringList arguments;
arguments << getenv(VS90COMNTOOLS) + "\\vsvars32.bat"
<< "&" << "vcbuild.exe" << pathToSolution << "Debug|Win32";
QProcess::execute(program, arguments);
문제는 같은 이름이다 "디버그 | Win32에서"나는 QProcess를 사용하여 내 프로그램을 호출하는 프로그램 구축 할 수 원하는 많은 솔루션에 대한 일반적인 구성의 이름입니다 -하지만 상징 " | " 파이프 심볼로 취급되고 windows는 다음과 같이 말합니다 : "명령 Win32가 잘못되었거나 찾을 수 없습니다." (. 원 ë "데르 Befehl"는 Win32 "인도 표준시 entweder falsch geschrieben 데르 konnte nicht gefunden werden.")
나는 따옴표를 사용하려고하면 :
arguments << [...] << "\"Debug|Win32\""
오류가이다 : "vcbuild.exe : 오류 VCBLD0006 : 잘못된 구성 이름 : "Debug | WIN32". " (출처 : vcbuild.exe : Fehler VCBLD0006 : Ungültiger Konfigurationsname : "DEBUG | WIN32".) 분명히 따옴표는 파이프 기호가 더 이상 파이프 기호로 처리되지 않고 이제 구성 이름 잘못된 것입니다. try와 error를 통해 나는 Qt가 3 개의 따옴표로 감싸는 것을 발견했다.
이vcbuild.exe [...] """Debug|Win32"""
해결 방법은 하나의 큰 문자열로 모든 것을 넣어하는 것입니다,하지만 방법은 내가 모든 인용 물건에 따라 수행해야하기 때문에 즉, 내 마지막 원치 않는 선택이 될 것입니다 : 내가 쓰는 것처럼입니다 따옴표 또는 공백을 혼자서 사용하십시오.
누군가 내 문제를 해결하는 방법에 대한 답변을 알고 있습니까? 미리 감사드립니다.
내 하루를 보냈습니다! – Gombat