我有一个头文件:
#ifndef DATA_HPP
#define DATA_HPP
#include <cstdint>
namespace f {
namespace t {
namespace e {
uint32_t a = 99;
class Test
{
public:
Test();
~Test();
};
}
}
}
#endif
使用CPP文件try.cpp:
#include "try.hpp"
namespace f {
namespace t {
namespace e {
Test::Test()
{
}
Test::~Test()
{
}
}
}
}
还有主文件-main.cpp:
#include "try.hpp"
int main()
{
f::t::e::Test a;
}
但是当我编译我的代码时:
c++ --std=c++11 try.cpp main.cpp
我遇到以下错误:
(.data+0x0): multiple definition of `f::t::e::a'
try.cpp:(.data+0x0): first defined here
我已经有了头文件保护程序-那么为什么报告此错误以及如何解决该错误?