我有一个具有签名的函数:
int alarmCreate(const std::string& familyCode, std::vector<std::pair<std::string,boost::any> >& alarmparameters, const std::string& description);
可以看出,它有三个参数;字符串,向量,字符串。
但是当我构建我的项目时,我收到了一个错误:
/root/projects/test/test.cpp:152:未定义的引用
redisHandler::alarmCreate(std::string const&, std::vector<std::pair<std::string, boost::any>, std::allocator<std::pair<std::string, boost::any> > >&, std::string const&)
我看到类型为 std::allocator 的第四个参数,我不明白它来自哪里。
你们知道吗,为什么我的函数中有第四个参数?
编辑 :: 原来有 3 个参数。但我仍然很好奇为什么我会收到错误。此函数位于静态库中。当我用“nm”搜索这个库时,我看到我的 func 存在(如下所示)。你知道我可能会错过什么吗?
[root@ ~/projects/test/test]# nm ../../lib/libredis.a |grep alarmCreate
000000000000073c T_ZN12redisHandler11alarmCreateERKSsRSt6vectorISt4pairISsN5boost3anyEESaIS6_EES1_