Динамическое добавление директивы препроцессора из сборки командной строки VS2008 - PullRequest
2 голосов
/ 24 августа 2010

Я использую VS2008 и разрабатываю проекты на C / C ++.Я использую файл .bat для сборки своих проектов из командной строки (командная строка VC2k8).Мне нужен способ включить директиву препроссора динамически во время сборки.

Я использую devenv для сборки из командной строки.

>devenv my\project\path\myproject.sln /build release > logs\build.log

На самом деле я хочу установить определение макроса на основе командыПараметр строки в командный файл.Я могу хранить два разных файла .vcproj, но это создает проблемы с сохранением нескольких файлов проекта / sln.Мой пакетный файл будет примерно таким ...

if (condition)
#define MYPROC_ENABLE_MYMODULE "yes" // To be included in the project.
else
#define MYPROC_ENABLE_MYMODULE "no"

Любая помощь будет очень признательна.

Спасибо.

Ответы [ 2 ]

1 голос
/ 24 августа 2010

Вы можете создавать различные конфигурации для своего решения и определять разные флаги препроцессора для различных конфигураций.Тогда вам просто нужно будет выбрать конфигурацию в командной строке, и вам не понадобятся несколько файлов решений или проектов.

1 голос
/ 24 августа 2010

Один из вариантов - установить CL переменную среды , используя что-то вроде:

set CL=/DMYPROC_ENABLE_MYMODULE

Компилятор C ++ (cl.exe) добавит содержимое CL переменная окружения в командной строке при запуске.

Я знаю, что вы можете определить макросы, если вы строите с использованием msbuild, но я не уверен, что вы можете сделать то же самое при использовании devenv напрямую.

...