'var'的存储大小未知

Nai*_*rou 1 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下进行合作?

Yan*_*min 8

添加externlog.h您的姓名声明.您的符号出现在两个地方.