【发布时间】:2012-07-20 03:26:48
【问题描述】:
界面:
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 中的 control::rmKeyControl::addKeyAction(char, std::__1::function) ld:未找到架构 x86_64 的符号 clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)
这似乎是 Xcode 4 的标准链接器错误,但似乎由于各种原因而发生,并且从未详细说明。此错误似乎表明存在不适用于 x86_64 架构的二进制指令,但在这种情况下没有意义。为什么会出现此错误?
编辑:我忘了提到rmKeyControl 在命名空间control 中。我是using namespace control;在实现中,虽然你看不到。
【问题讨论】:
标签: c++ xcode4 linker-errors