Итак, у меня есть программа Qt («Main»), которая (в своем воплощении Windows) внутренне запускает cl (компилятор VS). Я могу запустить Main одним из трех способов, и двумя из этих способов внутренний вызов cl завершается успешно, а третий, возможно, самый важный, завершается неудачно с ошибкой «cl is un Распознанная программа …». cl вызывается с system
и до звонка этот ответ и беги vcvars32.bat
также с system
,
Я предполагаю, что есть какая-то среда, которая либо наследуется от QtCreator (1), либо настраивается при запуске командной строки Windows (2), но не при нажатии на значок. Просто предположение, хотя. Кто-нибудь знает, что я могу сделать, чтобы все работало в случае (3)? А использование другого компилятора добавляет разные сложности, поэтому я просто хотел бы заставить эту работу работать с cl
(чтобы избежать одного очевидного ответа на это). Кроме того, я попытался сделать это с помощью QProcess
но у меня была такая же проблема во всех 1-3.
Изменить: Вот вызов vcvars32.bat
int setup_code = system(setup.c_str());
//Where setup is "C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\vcvars32.bat"
Это возвращает 0 (успех) во всех 1-3. В этом случае вызов cl, например,
int code = system(cmd.c_str());
//Where cmd is "cl /O2 "test.cpp" /Fe"test.exe""
Это возвращает 0 для 1-2 и 1 в условии 3, то есть ERROR_INVALID_FUNCTION.
Задача ещё не решена.