У меня странная ошибка в нескольких определениях в моем проекте.
Я использую команду препроцессора #ifndef
, чтобы не включать один и тот же файл несколько раз. Я очистил весь другой код. Вот мои упрощенные файлы:
1 - main.cpp
#include "IP.hpp"
int main()
{
return 0;
}
2 - IP.cpp
#include "IP.hpp"
//some codes!
3 - IP.hpp
#ifndef IP_HPP_INCLUDED
#define IP_HPP_INCLUDED
unsigned char LUTColor[2];
#endif // IP_HPP_INCLUDED
Используя кодовые блоки & gnu gcc в win7, он говорит:
obj \ Debug \ main.o: C: \ Users \ aaa \ Documents \ prg \ ct3 \ main.cpp | 4 | впервые определено здесь |
|| === Сборка завершена: 1 ошибка, 0 предупреждений === |
Прежде чем я удалил весь другой код, ошибка была:
|| === edgetest, Debug === |
obj \ Debug \ IP.o || В функции `Z9getHSVLUTPA256_A256_12colorSpace3b ': |
c: \ program files \ codeblocks \ mingw \ bin .. \ lib \ gcc \ mingw32 \ 4.4.1 \ include \ c ++ \ exception | 62 | множественное определение LUTColor '|
obj \ Debug \ main.o: C: \ Users \ aaa \ Documents \ prg \ edgetest \ main.cpp | 31 | впервые определено здесь |
|| === Сборка завершена: 2 ошибки, 0 предупреждений === |
И «LUTColor» находится в IP.hpp!
Что не так?