Почему компиляция VCC .sln выполняется в фоновом режиме без stdout? - PullRequest
3 голосов
/ 16 января 2009

Я пытаюсь скомпилировать проект из командной строки, например:

devenv.exe myproj.sln /build release

Похоже, код хорошо компилируется, но это еще не все, что мне нужно:

Я хочу иметь возможность получать выходные данные (например, предупреждения, ошибки) от компилятора по мере их возникновения. К сожалению, как только я ввожу вышеупомянутую команду, я возвращаюсь к командной строке.

Когда я смотрю на process-explorer или taskmgr.exe, я вижу, что процесс devenv.exe (и несколько других подпроцессов) работают. Если я загляну в выходную папку, то смогу постепенно увидеть все мои файлы.

Есть ли способ заставить VCC работать немного больше, чем GCC - когда я выполняю команду сборки или создаю проект с использованием Makefile, я получаю поток сообщений и консольные блоки до тех пор, пока процесс не завершится.

Обновление: спасибо, два отличных решения. Я могу подтвердить, что это работает.

Ответы [ 2 ]

9 голосов
/ 16 января 2009

devenv использует этот интересный диспетчер, который переключается между режимом командной строки и оконным режимом. На самом деле существует devenv.com в дополнение к devenv.exe, и, поскольку * .com имеет приоритет над * .exe, он вызывается первым. devenv.com анализирует командную строку и решает, что вызывать.

Другими словами, измените вашу командную строку на:

devenv myproj.sln /build release

И с тобой должно быть все в порядке.

9 голосов
/ 16 января 2009

используйте devenv.com вместо devenv.exe, и вы получите то, что хотите.

Вы также можете использовать MSBuild.exe для дополнительных параметров.

...