Dump всех #define
От: FallenGameR http://fallengamer.livejournal.com/
Дата: 24.11.10 00:26
Оценка:
Как можно получить список всех #define, которые определяет студия? Нужно узнать какую среду она создат на начло компиляции.
defines
Re: Dump всех #define
От: Аноним  
Дата: 24.11.10 08:18
Оценка:
FGR>Как можно получить список всех #define, которые определяет студия? Нужно узнать какую среду она создат на начло компиляции.
В свойствах проекта "C/C++" -> "Command Line". с ключом /D — дефайны.
Re[2]: Dump всех #define
От: FallenGameR http://fallengamer.livejournal.com/
Дата: 24.11.10 18:26
Оценка:
Здравствуйте, Аноним, Вы писали:

FGR>>Как можно получить список всех #define, которые определяет студия? Нужно узнать какую среду она создат на начло компиляции.

А>В свойствах проекта "C/C++" -> "Command Line". с ключом /D — дефайны.

Там не все. Там нету тех, в которых студия прописывает свою версию.
Если, например, подключать boost regex, то он через эти дефайны определяет какую именно либу ему нужно подцепить.
Если компилить из-под 2008 студии, то ищет libboost_regex-vc90-mt-gd.lib
Если компилить из-под 2010 студии, то ищет libboost_regex-vc100-mt-gd.lib
Re[3]: Dump всех #define
От: swingus  
Дата: 24.11.10 18:45
Оценка:
#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
Re[4]: Dump всех #define
От: FallenGameR http://fallengamer.livejournal.com/
Дата: 24.11.10 18:51
Оценка:
Здравствуйте, swingus, Вы писали:

S>#define-ы, объявленные в коде, необязательно имеют scope проекта, они могут действовать в единичном модуле, переопределяться и отменяться. Так-что такой список в общем случае невозможен


Требуется список define, определенных на начало компиляции. Общий случай не нужен.
Re: Dump всех #define
От: Аноним  
Дата: 24.11.10 21:41
Оценка:
Здравствуйте, FallenGameR, Вы писали:

FGR>Как можно получить список всех #define, которые определяет студия? Нужно узнать какую среду она создат на начло компиляции.


Есть грубый вариант, написать макрос который это все сдампит, благо в студии через макрореадктор есть доступ к такому себе DOMу исходников/
Re[2]: Dump всех #define
От: FallenGameR http://fallengamer.livejournal.com/
Дата: 24.11.10 22:01
Оценка:
Здравствуйте, Аноним, Вы писали:

FGR>>Как можно получить список всех #define, которые определяет студия? Нужно узнать какую среду она создат на начло компиляции.

А>Есть грубый вариант, написать макрос который это все сдампит, благо в студии через макрореадктор есть доступ к такому себе DOMу исходников/

Вот. Как будет этот макрос работать — какой API копать?
PS Кстати, если имеется в виду макроредактор в настройках проекта, то там тоже не все define. Отсутвует _MSC_VER, к примеру.
Re[5]: Dump всех #define
От: jazzer Россия Skype: enerjazzer
Дата: 24.11.10 22:26
Оценка:
Здравствуйте, FallenGameR, Вы писали:

FGR>Здравствуйте, swingus, Вы писали:


S>>#define-ы, объявленные в коде, необязательно имеют scope проекта, они могут действовать в единичном модуле, переопределяться и отменяться. Так-что такой список в общем случае невозможен


FGR>Требуется список define, определенных на начало компиляции. Общий случай не нужен.

Тогда просто создай пустой исходник, отметь для него (или для проекта) галочку "сгенерить препроцессированный файл" и собери его — у тебя будет там все, что студия кладет по умолчанию.
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[6]: Dump всех #define
От: quodum  
Дата: 25.11.10 12:20
Оценка:
Здравствуйте, jazzer, Вы писали:


FGR>>Требуется список define, определенных на начало компиляции. Общий случай не нужен.

J>Тогда просто создай пустой исходник, отметь для него (или для проекта) галочку "сгенерить препроцессированный файл" и собери его — у тебя будет там все, что студия кладет по умолчанию.

Как раз дефайнов там и не будет.
Re: Dump всех #define
От: 0xDEADBEEF Ниоткуда  
Дата: 25.11.10 17:29
Оценка:
Здравствуйте, 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.
Re[7]: Dump всех #define
От: jazzer Россия Skype: enerjazzer
Дата: 25.11.10 23:45
Оценка:
Здравствуйте, quodum, Вы писали:

Q>Здравствуйте, jazzer, Вы писали:



FGR>>>Требуется список define, определенных на начало компиляции. Общий случай не нужен.

J>>Тогда просто создай пустой исходник, отметь для него (или для проекта) галочку "сгенерить препроцессированный файл" и собери его — у тебя будет там все, что студия кладет по умолчанию.

Q>Как раз дефайнов там и не будет.

ну, значит, двойка студии, что я могу сказать. GCC все дефайны скидывает, как положено.
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.