Как сделать сборку Visual Studio максимально подробной?

99

Мне нужно заполучить каждый флаг, каждый переключатель, используемый в процессе сборки двоичными файлами Visual Studio. Я попытался получить подробный вывод с помощью vcbuild, но не смог.

Что мне нужно сделать, чтобы увидеть все, что Visual Studio выполняет за меня? Нет необходимости получать результат в окне сборки. Везде было бы хорошо.

Гео
источник
1
Точный дубликат stackoverflow.com/questions/823854/… .
JesperE

Ответы:

67
  1. Откройте диалоговое окно свойств проекта, затем выберите

    Свойства конфигурацииC / C ++Общие

  2. Измените настройку Suppress Startup BannerнаNo

  3. clКомандная строка (S) будет показана в окне вывода.

Тим Даути
источник
1
Это влияет только на компилятор, а не на компоновщик или ресурсы.
user2284570
6
В VS2017 этот «трюк» больше не работает. Однако сборка в приглашении разработчика с использованием msbuild с именем файла решения или проекта в качестве аргумента cli действительно показывает вызов cl с его аргументами.
Emile Vrijdags
@EmileVrijdags Я прекрасно вижу clвывод команды с VS2017 после этих шагов. Так что у меня "уловка" работает.
nephewtom
153

Меню ИнструментыПараметрыПроекты и решенияСборка и запускПодробность вывода сборки проекта MSBuild : Диагностика

Сэм Харвелл
источник
2
Это ничего не меняет. Я все еще получаю тот же результат в окне вывода.
Geo
3
У меня отлично работает в VC10.
abergmeier
2
@Geo вступает в силу после перезапуска Visual Studio.
Absynce
@absynce, в VS 2017 это не действует даже при перезапуске Visual Studi0 2017. Я использую версию сообщества VS 2017. Таким образом, эта функциональность, похоже, не реализована должным образом в VS 2017.
Сунил,
Работает и в VS 2019!
Прабал Каджла
65

Visual Studio 2008:

Перейдите в меню ИнструментыПараметры, затем выберите Проект и решения → Раздел Сборка и запуск . У вас есть поле со списком для многословности.

Вариант компилятора C ++ (свойства проекта):

  • Препроцессор - создание предварительно обработанного файла для просмотра единицы перевода, созданной препроцессором.
  • Дополнительно - Показать включает - отображать имена включенных файлов на выходе компилятора
Кэтэлин Питиш
источник
1
При этом не отображаются флаги компиляции и компоновщика, а отображаются только имена обрабатываемых файлов. Можно ли увидеть точные выполняемые команды или это невозможно с VS?
stefanB
2
@stefanB: для этого не нужны специальные флаги. Командные строки для вызова компилятора и компоновщика можно найти в диалоговом окне параметров или в журнале сборки, который записывается в промежуточный каталог.
Яков Галка
8

Если вы используете MSBuild, вы можете установить флаг / v: diag.

Джо
источник
Как мне запустить MSBuild?
Geo
запустите командную строку Visual Studio (она находится в меню «Пуск»), затем выполните проект Visual Studio с помощью: MSBuild {ProjectName}
Джо
например, MsBuild myProject.csproj
Джо
Я вижу вызовы MSBuild vcbuild, но vcbuild не показывает используемые флаги / переключатели.
Geo
Я считаю, что это правильный ответ. Простое отключение подавления различных баннеров еще не все выводит. В частности, я искал этап компиляции ресурса.
Джон
5

В Visual Studio перейдите к своему проекту, щелкните его правой кнопкой мыши и выберите свойства. В Linker есть опция командной строки. Здесь у вас есть все варианты, и вы можете добавить свои собственные. Добавьте /VERBOSEи при связывании Visual Studio покажет намного больше информации.

Хавьер-Санз
источник
1
Он показывает больше информации, но не показывает инструменты, вызываемые для компиляции.
Geo,
2
В Visual Studio есть инструмент make под названием nmake. Вы можете экспортировать свой проект в эти make- файлы и собрать его из консоли dos msdn.microsoft.com/en-us/library/txcwa2xx(VS.80).aspx . В прошлый раз я сделал что-то подобное (но я использовал CMake для генерации make-файлов nmake), все команды выводились на дисплей консоли.
javier-sanz