1

请帮我

错误详情如下:

src/a.cpp:2972: 未定义引用`B::XTT collect2: ld 返回 1 退出状态

B::XTTB结构中的静态常量变量。

2969     if (index != B::XTT) {
2970         index_map_iter = lookup_index.find(merchandising_index);
2971         merchandising_index = index_map_iter != output_index.end() ? \
2972                index_map_iter->second : B::XTT;

很奇怪,我第一次B::XTT在2969行使用,居然没有报错。但是在 2972​​ 我使用B::XTT,它会产生错误。

如果我-O2在使用g++命令时添加选项,它不会产生错误。但它确实会产生错误而没有-O2.

4

1 回答 1

2

当你声明一个静态 const 成员变量时

class foo {
    // omitted other members
    static int MyConst;
};

您必须在一个编译单元中定义它。

int foo:MyConst = 42;
于 2013-01-16T12:16:55.870 回答