界面:
class rmKeyControl {
static map<char, function<char(char)>> sm_function_list;
public:
static bool addKeyAction(char, function<char(char)>);
};
执行:
bool rmKeyControl::addKeyAction(char key, function<char(char)> func) {
if (!sm_function_list.count(key)) {
sm_function_list.insert(pair<char, function<char(char)>>(key, func));
return true;
} return false;
}
完整的错误信息是:
体系结构 x86_64 的未定义符号:“control::rmKeyControl::sm_function_list”,引用自:rm_KeyControl.o ld 中的 control::rmKeyControl::addKeyAction(char, std::__1::function):未找到符号架构 x86_64 clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)
这似乎是 Xcode 4 的标准链接器错误,但它似乎由于各种原因而发生,并且从未详细说明。此错误似乎表明存在不适用于 x86_64 架构的二进制指令,但这在这种情况下没有意义。为什么我会收到此错误?
编辑:我忘了提到那rmKeyControl
是在 namespace control
。我using namespace control;
在执行中,虽然你看不到它。