【发布时间】:2014-10-06 21:53:31
【问题描述】:
链接此代码时:
#include <map>
using std::map;
#include <string>
using std::string;
class C {
public:
static void dump() {
for (const auto& e : data) {
string(e.first);
}
}
private:
static map<string,map<string,string>> data;
};
int main() {
C::dump();
}
...我收到此错误:
/tmp/cc4W2iNa.o: In function `C::dump()':
test.cpp:(.text._ZN1C4dumpEv[_ZN1C4dumpEv]+0x9): undefined reference to `C::data'
collect2: error: ld returned 1 exit status
...来自 g++ (GCC) 4.9.1。 我做错什么了吗?
【问题讨论】:
-
我们确实应该为这个问题找到一个不那么令人困惑的重复项(或者将它变成一个更通用的形状),但它仍然是该主题中获得最高票数的问题。
-
这里有一个更全面的副本:stackoverflow.com/questions/7092765