FGR>Как можно получить список всех #define, которые определяет студия? Нужно узнать какую среду она создат на начло компиляции.
В свойствах проекта "C/C++" -> "Command Line". с ключом /D — дефайны.
Здравствуйте, Аноним, Вы писали:
FGR>>Как можно получить список всех #define, которые определяет студия? Нужно узнать какую среду она создат на начло компиляции. А>В свойствах проекта "C/C++" -> "Command Line". с ключом /D — дефайны.
Там не все. Там нету тех, в которых студия прописывает свою версию.
Если, например, подключать boost regex, то он через эти дефайны определяет какую именно либу ему нужно подцепить.
Если компилить из-под 2008 студии, то ищет libboost_regex-vc90-mt-gd.lib
Если компилить из-под 2010 студии, то ищет libboost_regex-vc100-mt-gd.lib
#define-ы, объявленные в коде, необязательно имеют scope проекта, они могут действовать в единичном модуле, переопределяться и отменяться. Так-что такой список в общем случае невозможен
Здравствуйте, FallenGameR, Вы писали:
FGR>Здравствуйте, Аноним, Вы писали:
FGR>>>Как можно получить список всех #define, которые определяет студия? Нужно узнать какую среду она создат на начло компиляции. А>>В свойствах проекта "C/C++" -> "Command Line". с ключом /D — дефайны.
FGR>Там не все. Там нету тех, в которых студия прописывает свою версию. FGR>Если, например, подключать boost regex, то он через эти дефайны определяет какую именно либу ему нужно подцепить. FGR>Если компилить из-под 2008 студии, то ищет libboost_regex-vc90-mt-gd.lib FGR>Если компилить из-под 2010 студии, то ищет libboost_regex-vc100-mt-gd.lib
Здравствуйте, swingus, Вы писали:
S>#define-ы, объявленные в коде, необязательно имеют scope проекта, они могут действовать в единичном модуле, переопределяться и отменяться. Так-что такой список в общем случае невозможен
Требуется список define, определенных на начало компиляции. Общий случай не нужен.
Re: Dump всех #define
От:
Аноним
Дата:
24.11.10 21:41
Оценка:
Здравствуйте, FallenGameR, Вы писали:
FGR>Как можно получить список всех #define, которые определяет студия? Нужно узнать какую среду она создат на начло компиляции.
Есть грубый вариант, написать макрос который это все сдампит, благо в студии через макрореадктор есть доступ к такому себе DOMу исходников/
Здравствуйте, Аноним, Вы писали:
FGR>>Как можно получить список всех #define, которые определяет студия? Нужно узнать какую среду она создат на начло компиляции. А>Есть грубый вариант, написать макрос который это все сдампит, благо в студии через макрореадктор есть доступ к такому себе DOMу исходников/
Вот. Как будет этот макрос работать — какой API копать?
PS Кстати, если имеется в виду макроредактор в настройках проекта, то там тоже не все define. Отсутвует _MSC_VER, к примеру.
Здравствуйте, FallenGameR, Вы писали:
FGR>Здравствуйте, swingus, Вы писали:
S>>#define-ы, объявленные в коде, необязательно имеют scope проекта, они могут действовать в единичном модуле, переопределяться и отменяться. Так-что такой список в общем случае невозможен
FGR>Требуется список define, определенных на начало компиляции. Общий случай не нужен.
Тогда просто создай пустой исходник, отметь для него (или для проекта) галочку "сгенерить препроцессированный файл" и собери его — у тебя будет там все, что студия кладет по умолчанию.
FGR>>Требуется список define, определенных на начало компиляции. Общий случай не нужен. J>Тогда просто создай пустой исходник, отметь для него (или для проекта) галочку "сгенерить препроцессированный файл" и собери его — у тебя будет там все, что студия кладет по умолчанию.
Здравствуйте, FallenGameR, Вы писали:
FGR>Как можно получить список всех #define, которые определяет студия? Нужно узнать какую среду она создат на начло компиляции.
Они документированы. См здесь: http://msdn.microsoft.com/en-us/library/b0084kay(VS.71).aspx
__________
16.There is no cause so right that one cannot find a fool following it.
Здравствуйте, quodum, Вы писали:
Q>Здравствуйте, jazzer, Вы писали:
FGR>>>Требуется список define, определенных на начало компиляции. Общий случай не нужен. J>>Тогда просто создай пустой исходник, отметь для него (или для проекта) галочку "сгенерить препроцессированный файл" и собери его — у тебя будет там все, что студия кладет по умолчанию.
Q>Как раз дефайнов там и не будет.
ну, значит, двойка студии, что я могу сказать. GCC все дефайны скидывает, как положено.