Jak sprawić, by kompilacja programu Visual Studio była bardzo szczegółowa?

99

Muszę zdobyć każdą flagę, każdy przełącznik używany w procesie kompilacji przez pliki binarne programu Visual Studio. Próbowałem uzyskać szczegółowe dane wyjściowe za pomocą vcbuild, ale nie mogłem.

Co muszę zrobić, aby zobaczyć wszystko, co jest wykonywane przez program Visual Studio? Nie ma potrzeby uzyskiwania danych wyjściowych w oknie kompilacji. Wszystko będzie dobrze.

Geo
źródło
1
Dokładny duplikat stackoverflow.com/questions/823854/… .
JesperE,

Odpowiedzi:

67
  1. Otwórz okno dialogowe właściwości projektu, a następnie wybierz

    Właściwości konfiguracjiC / C ++Ogólne

  2. Zmień ustawienie Suppress Startup BannernaNo

  3. Wiersze clpoleceń zostaną wyświetlone w oknie wyjściowym.

Tim Dowty
źródło
1
Dotyczy to tylko kompilatora, a nie konsolidatora lub zasobów.
user2284570
6
W VS2017 ta `` sztuczka '' wydaje się już nie działać. Jednak budowanie w zachęcie programisty przy użyciu msbuild z nazwą pliku rozwiązania lub projektu jako argumentem cli powoduje wyświetlenie wywołania cl z jego argumentami.
Emile Vrijdags,
@EmileVrijdags Doskonale widzę clwyjście polecenia z VS2017 po wykonaniu tych kroków. Więc ta „sztuczka” działa na mnie.
nephewtom
152

Menu NarzędziaOpcjeProjekty i rozwiązaniaKompiluj i uruchamiaj → Szczegółowość danych wyjściowych kompilacji projektu programu MSBuild : Diagnostyka

Sam Harwell
źródło
2
To niczego nie zmienia. Nadal otrzymuję te same dane wyjściowe w oknie wyników.
Geo
3
U mnie działa dobrze w VC10.
abergmeier
2
@ Geo zaczyna obowiązywać po ponownym uruchomieniu programu Visual Studio.
absync
@absynce, W VS 2017 nie działa to nawet po ponownym uruchomieniu Visual Studi0 2017. Używam wersji społeczności VS 2017. Tak więc ta funkcjonalność nie wydaje się być poprawnie zaimplementowana w VS 2017.
Sunil
Działa również w VS 2019!
Prabal Kajla
65

Visual Studio 2008:

Przejdź do menu NarzędziaOpcje, a następnie Projekt i rozwiązaniaBuduj i uruchom . Masz pole kombi do szczegółowości.

Opcja kompilatora C ++ (właściwości projektu):

  • Preprocesor - Generuj wstępnie przetworzony plik, aby zobaczyć jednostkę tłumaczeniową wygenerowaną przez preprocesor
  • Zaawansowane - Pokaż dołączone - wyświetl dołączone nazwy plików na wyjściu kompilatora
Cătălin Pitiș
źródło
1
To nie pokazuje flag kompilacji i konsolidatora, tylko nazwy plików, które są przetwarzane. Czy można zobaczyć dokładne polecenia, które są wykonywane lub jest to niemożliwe w VS?
stefanB
2
@stefanB: nie potrzebujesz do tego specjalnych flag. Wiersze poleceń dla wywołania kompilatora i konsolidatora można znaleźć w oknie dialogowym opcji lub w dzienniku kompilacji, który jest zapisywany w katalogu pośrednim.
Yakov Galka
8

Jeśli używasz programu MSBuild, możesz ustawić flagę / v: diag.

Joe
źródło
Jak uruchomić MSBuild?
Geo
uruchom wiersz poleceń programu Visual Studio (znajduje się w menu Start), a następnie wykonaj projekt programu Visual Studio z: MSBuild {ProjectName}
Joe
np. MsBuild myProject.csproj
Joe
Widzę wywołania MSBuild vcbuild, ale vcbuild nie pokazuje flag / przełączników, których używa.
Geo
Uważam, że to jest właściwa odpowiedź. Samo wyłączenie różnych banerów nadal nie wyświetla wszystkiego. W szczególności krok kompilacji zasobów był tym, czego szukałem.
Jan
5

W programie Visual Studio przejdź do projektu, kliknij go prawym przyciskiem myszy i wybierz właściwości. W Linkerze jest opcja linii poleceń. Tam masz wszystkie opcje i możesz dodać własne. Dodaj, /VERBOSEa podczas łączenia Visual Studio pokaże dużo więcej informacji.

javier-sanz
źródło
1
Pokazuje więcej informacji, ale nie pokazuje narzędzi wywoływanych do kompilacji.
Geo
2
Visual Studio ma narzędzie do tworzenia nazw o nazwie nmake. Możesz wyeksportować swój projekt do tych plików makefile i zbudować go z konsoli DOS msdn.microsoft.com/en-us/library/txcwa2xx(VS.80).aspx . Ostatnim razem zrobiłem coś podobnego (ale użyłem CMake do wygenerowania plików makefile nmake) wszystkie polecenia zostały wydrukowane na wyświetlaczu konsoli.
javier-sanz