объявления макросов
От: the_moon  
Дата: 15.07.06 18:29
Оценка:
Может кто не спит, памахите пожалуйста! Совсем забыл c++.

Короче есть хидер (config.h) в котором я написал
#define MYDEF

Есть еще один хидер (file.h) в котором я написал

#ifndef MYDEF
#error Not defined MYDEF from file.h!
#endif


Есть еще сурсник (file.cpp)


в котором я прописал так

#include <config.h>

#ifndef MYDEF
#error Not defined MYDEF from file.cpp!
#endif

#include <file.h>


Беда в том, что я получаю при компиляции

../include/file.h:37:2: #error Not defined MYDEF from file.h!


Мне казалось, что в хидере file.h тоже будет видно макрос MYDEF.

у меня gcc

Спасибо
KOPOTbILLIKA KPbIC
Re: объявления макросов
От: frosty  
Дата: 16.07.06 01:43
Оценка:
Может вам подойдёт использование опции -D gcc?
С её помощью можно определить макрос, который будет видно глобально.
Re: объявления макросов
От: dotidot Россия  
Дата: 16.07.06 04:02
Оценка:
Здравствуйте, the_moon, Вы писали:

_>Может кто не спит, памахите пожалуйста! Совсем забыл c++.


_>Короче есть хидер (config.h) в котором я написал

_>
_>#define MYDEF
_>

...

_>
_>#include <config.h>

_>#ifndef MYDEF
_>#error Not defined MYDEF from file.cpp!
_>#endif

_>#include <file.h>
_>


странно. что-то перепутано либо в описании ситуации либо вообще
может file.h инклудится еще где нибудь?
Re[2]: объявления макросов
От: the_moon  
Дата: 16.07.06 08:54
Оценка:
D>странно. что-то перепутано либо в описании ситуации либо вообще
D>может file.h инклудится еще где нибудь?

Да, я кое что не углядел. Проблема была из за неправильного порядка включения.

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

Запарка вышла вообщем, которая мне целый день стоила .
KOPOTbILLIKA KPbIC
Re[3]: объявления макросов
От: Vain Россия google.ru
Дата: 16.07.06 15:50
Оценка:
Здравствуйте, the_moon, Вы писали:

_>Запарка вышла вообщем, которая мне целый день стоила .

oO для этого есть /showIncludes
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Re[4]: объявления макросов
От: Roman Odaisky Украина  
Дата: 16.07.06 19:32
Оценка:
Здравствуйте, Vain, Вы писали:

_>>Запарка вышла вообщем, которая мне целый день стоила .

V>oO для этого есть /showIncludes

# g++ /showIncludes hw.cpp
g++: /showIncludes: No such file or directory

До последнего не верил в пирамиду Лебедева.
Re[5]: объявления макросов
От: zaufi Земля  
Дата: 16.07.06 19:48
Оценка:
Здравствуйте, Roman Odaisky, Вы писали:

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


_>>>Запарка вышла вообщем, которая мне целый день стоила .

V>>oO для этого есть /showIncludes

RO>
# g++ /showIncludes hw.cpp
RO>g++: /showIncludes: No such file or directory

RO>

-H это в gcc
Re[3]: объявления макросов
От: Кодт Россия  
Дата: 17.07.06 07:51
Оценка:
Здравствуйте, the_moon, Вы писали:

D>>странно. что-то перепутано либо в описании ситуации либо вообще

D>>может file.h инклудится еще где нибудь?

_>Да, я кое что не углядел. Проблема была из за неправильного порядка включения.


Может быть, чтобы избегать головняка о порядке включения — всегда включать config.h в те file.h которые им пользуются?
Естественно, с #pragma once и прочими гвардейцами.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Перекуём баги на фичи!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.