При создании проекта или решения визуальной студии, как я могу получить фактический вызов cl.exe
, который будет выполнен? Например, я хотел бы увидеть что-то вроде
cl.exe /c /I"C:\Path\to\Include" /Fo"Release\main.obj" /EHsc main.cpp
Я хотел бы знать точные аргументы, которые передаются в cl.exe
, но я не вижу их в окне вывода, независимо от многословности.
В VS 2022 я создал новый консольный проект C++, установил для параметра «Детализация вывода» значение «Подробно», запустил «Очистить» и «Построить». Вывод для Target ClCompile
включает 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
Когда мне нужно было увидеть точные параметры, передаваемые в подпрограмму, вызываемую IDE, я сделал это так: я создал простую прокладку exe-файла, которая отображает всю его командную строку в stderr, и очень осторожно временно заменил ее исходным cl. Exe. Оказывается, в компиляторе Intel можно просто добавить «-v» в командную строку. Но с MS не повезло. Я описала свой метод в этом вопросе , но лучшего ответа не получила.
Мне не удалось воспроизвести проблему в Visual Studio 2022 с MSVC v143.
В Visual Studio 2022 я создал новый проект консольного приложения C++ с помощью шаблона.
Следующие шаги:
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
спасибо, это сработало! Знаете ли вы, есть ли способ поиска в окне вывода? ctrl+f похоже не работает
Щелкните окно вывода, чтобы убедиться, что оно находится в фокусе, затем используйте Ctrl+f.
окей, у меня это не работало, пока я не сделал Инструменты -> Параметры -> Среда -> Клавиатура -> Сброс
Меню «Правка -> Найти и заменить -> Быстрый поиск» должно работать, даже если привязка сочетания клавиш не является глобальной.
но я не вижу этого в окне вывода, независимо от многословия.
Отсюда вы установили уровень детализации вывода сборки на Diagnostic
?
Инструменты меню → Параметры → Проекты и решения → Сборка и запуск → Подробность выходных данных сборки проекта MSBuild: Диагностика
Если да, но все еще не видите его, попробуйте установить этот параметр компилятора: Suppress Startup Banner
.
1.Откройте диалоговое окно «Страницы свойств» проекта.
2.Выберите страницу свойств конфигурации > C/C++ > Общие.
3. Измените свойство «Подавить баннер запуска» на No
.
Судя по моему тесту, в окне вывода будут показаны командные строки cl.
Документы указаны:
Надеюсь, это поможет вам.
Я только что протестировал проект на C++, и командная строка отображается с подробной информацией (
-v:d
).