'var'的存储大小未知

时间:2011-01-10 22:17:43

标签: c++

我有一个在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下进行合作?

1 个答案:

答案 0 :(得分:8)

extern添加到log.h的姓名声明中。您的符号出现在两个地方。