我有一个在VC ++下工作正常的程序,但在GCC下给我一个错误。
log.h :namespace logType { enum Enum { None = 0, Info, Warning, Error, }; std::string Name[]; }log.cpp 中的
:
std::string logType::Name[] = { "None", "Info", "WARNING", "ERROR" };
编译log.cpp时,这很好用。但是,如果任何其他文件包含log.h,则该文件出错:
error: storage size of ‘logType::Name’ isn't known
我已尝试在一个或两个文件中指定Name []的数组大小,但这只是将错误更改为重新声明的错误。
如何在GCC下进行合作?
答案 0 :(得分:8)
将extern
添加到log.h
的姓名声明中。您的符号出现在两个地方。