我正在使用
中定义的一些常量Constanst.h
#ifndef __CONSTANTS_H__
#define __CONSTANTS_H__
namespace A{
namespace B{
const int FIRST = 1;
const int SECOND = 2;
}
}
#endif
我从2个不同的.cpp(A.cpp和B.cpp)
中包含此文件gcc版本3.2.3给了我"多重定义"链接错误
我只是通过包含另一个" File.h"来解决问题。其中包括" Constants.h"并声明与" extern"
相同的常量有人可以解释原因吗?我认为这是C中的一个问题,而不是C ++
答案 0 :(得分:0)
使用g ++版本4.3.4:
constants.h:5: error: ISO C++ forbids declaration of `FIRST' with no type
添加类型int
后,它可以正常工作。
那么也许你应该使用更新的编译器?使用g ++而不是gcc?