Как сделать сборку 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
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.