Может кто не спит, памахите пожалуйста! Совсем забыл 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
Спасибо
Здравствуйте, 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 инклудится еще где нибудь?
D>странно. что-то перепутано либо в описании ситуации либо вообще
D>может file.h инклудится еще где нибудь?
Да, я кое что не углядел. Проблема была из за неправильного порядка включения.
Мне надо было системный хидер сконфигурировать, зарание продифинировав некий макрос, а этот хидер включался через другой который шел первым и был защищен от повторного включения.
Запарка вышла вообщем, которая мне целый день стоила
.
Здравствуйте, the_moon, Вы писали:
_>Запарка вышла вообщем, которая мне целый день стоила .
oO для этого есть /showIncludes
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Здравствуйте, Vain, Вы писали:
_>>Запарка вышла вообщем, которая мне целый день стоила .
V>oO для этого есть /showIncludes
# g++ /showIncludes hw.cpp
g++: /showIncludes: No such file or directory
Здравствуйте, Roman Odaisky, Вы писали:
RO>Здравствуйте, Vain, Вы писали:
_>>>Запарка вышла вообщем, которая мне целый день стоила .
V>>oO для этого есть /showIncludes
RO># g++ /showIncludes hw.cpp
RO>g++: /showIncludes: No such file or directory
RO>
-H это в gcc
Здравствуйте, the_moon, Вы писали:
D>>странно. что-то перепутано либо в описании ситуации либо вообще
D>>может file.h инклудится еще где нибудь?
_>Да, я кое что не углядел. Проблема была из за неправильного порядка включения.
Может быть, чтобы избегать головняка о порядке включения — всегда включать config.h в те file.h которые им пользуются?
Естественно, с #pragma once и прочими гвардейцами.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>