Как перехватить командную строку cl.exe в Visual Studio 2010?

У меня есть проект, который я преобразовал из make-файла, который имеет исходный файл, который ожидает параметры командной строки от компилятора. Например, когда проект был построен с помощью gcc, если вы это сделали program --help это выложит командную строку gcc, используемую для компиляции программы.

Как я могу сделать то же самое в Visual Studio, чтобы он выплевывал командную строку cl, используемую для компиляции программы? По сути, я хочу нажать F7 (для создания решения) и автоматизировать все это. Я не могу найти макрос для этого. Спасибо

редактировать; Я имею в виду программно, поэтому, например, я хочу, чтобы при запуске программы для ее вывода содержалась используемая командная строка cl.exe. Вы можете увидеть командную строку на Configuration Properties > C/C++ > Command Line > All Options но я не могу найти для него макрос или какой-то способ инкапсулировать его в файл.

0

Решение

Поскольку VS переключил базовую систему сборки на MsBuild, командная строка, как показано в этом диалоговом окне, создается программно только внутри VS. Это может быть даже не точный командная строка, передаваемая в cl: MsBuild сама вызывает CL через задачу, и поэтому нет прямой связи с тем, что показано в VS, и нет способа извлечь из нее командную строку.

Во всяком случае, нет такой вещи, как командной строки, так как каждый исходный файл может иметь разные параметры. Кроме того, я сомневаюсь, что вам нужна полная командная строка, включая абсолютные пути включения и т. Д. Никому это не интересно. Теперь, если вы умело используете макросы из http://msdn.microsoft.com/en-us/library/b0084kay.aspx вы можете как-то воссоздать командную строку самостоятельно, так как большинство опций есть:

std::string CompilerCommandLineOptions()
{
std::string cmd;
#ifdef _CHAR_UNSIGNED
cmd += " /J";
#endif
#ifdef __cplusplus_cli
cmd += " /clr";
#endif
#ifdef _CPPRTTI
cmd += " /GR"#endif
//etc
return cmd;
}

Примечание: вы уверены, что это стоит хлопот? Действительно ли кто-то заинтересован в командной строке? Этого даже недостаточно, чтобы построить проект. Почему бы тогда не использовать параметры компоновщика?

0

Другие решения

.Vcxproj — это проект Visual Studio в формате проекта MSBuild. Вы можете создать его, запустив msbuild.exe, devenv.exe, devenv.com, используя графический интерфейс Visual Studio или MSBuild API.

Visual Studio GUI использует MSBuild API. При этом он ограничивает вывод MSBuild.
Если вы хотите больше подробностей, измените пользовательские настройки в Visual Studio:

Инструменты> Параметры> Проект и решения> Построить и запустить> две настройки многословия

Подробно покажет командные строки cl.exe.

0

По вопросам рекламы [email protected]