Получение точного вызова cl.exe при создании проекта или решения Visual Studio

При создании проекта или решения визуальной студии, как я могу получить фактический вызов cl.exe, который будет выполнен? Например, я хотел бы увидеть что-то вроде

cl.exe /c /I"C:\Path\to\Include" /Fo"Release\main.obj" /EHsc main.cpp

Я хотел бы знать точные аргументы, которые передаются в cl.exe, но я не вижу их в окне вывода, независимо от многословности.


61
3

Ответы:

Когда мне нужно было увидеть точные параметры, передаваемые в подпрограмму, вызываемую IDE, я сделал это так: я создал простую прокладку exe-файла, которая отображает всю его командную строку в stderr, и очень осторожно временно заменил ее исходным cl. Exe. Оказывается, в компиляторе Intel можно просто добавить «-v» в командную строку. Но с MS не повезло. Я описала свой метод в этом вопросе , но лучшего ответа не получила.


Решено

Мне не удалось воспроизвести проблему в Visual Studio 2022 с MSVC v143.

В Visual Studio 2022 я создал новый проект консольного приложения C++ с помощью шаблона.

Следующие шаги:

  1. Постройте решение так, чтобы в окне «Вывод» отображались выходные данные «Построить».
  2. Установите для параметра Подробность вывода значение «Подробно».
  3. Запустите «Чистое решение», а затем «Построить решение» (или «Перестроить решение», но результат будет длиннее).
  4. В окне вывода найдите «ClCompile» как целое слово. (ClCompile — это имя цели в MSBuild.)

У меня есть следующий вывод, где первая строка для Target ClCompile — это командная строка компилятора:

1>Target ClCompile:
1>  C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.40.33807\bin\HostX64\x64\CL.exe /c /ZI /JMC /nologo /W3 /WX- /diagnostics:column /sdl /Od /D _DEBUG /D _CONSOLE /D _UNICODE /D UNICODE /Gm- /EHsc /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /permissive- /Fo"CppConso.d37a0e87\x64\Debug\\" /Fd"CppConso.d37a0e87\x64\Debug\vc143.pdb" /external:W3 /Gd /TP /FC /errorReport:prompt CppConsoleApplication1.cpp
1>  CppConsoleApplication1.cpp


но я не вижу этого в окне вывода, независимо от многословия.

Отсюда вы установили уровень детализации вывода сборки на Diagnostic?

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

Если да, но все еще не видите его, попробуйте установить этот параметр компилятора: Suppress Startup Banner. 1.Откройте диалоговое окно «Страницы свойств» проекта.

2.Выберите страницу свойств конфигурации > C/C++ > Общие.

3. Измените свойство «Подавить баннер запуска» на No.

Судя по моему тесту, в окне вывода будут показаны командные строки cl.

Документы указаны:

https://learn.microsoft.com/en-us/cpp/build/reference/nologo-suppress-startup-banner-c-cpp?view=msvc-170

Надеюсь, это поможет вам.