내가있는 기능이 서명 :예상되지 않음 매개 변수를 연결하는 동안 무대
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, 어디에서 오는 이해할 수 없습니다.
내 생각에는 네가 내 함수에 4 번째 매개 변수가있는 이유는 무엇입니까?
편집 : 3 개의 매개 변수가 있습니다. 그러나 나는 왜 나는 오류가 발생하는지 궁금하다. 이 함수는 정적 라이브러리에 있습니다. 이 라이브러리를 "nm"으로 검색하면 func이 있음을 알 수 있습니다 (아래에서 볼 수 있습니다). 내가 뭘 놓칠지 모르니?
[루트 @ ~/프로젝트/테스트/테스트] # nm의 ../../lib/libredis.a | 그렙 alarmCreate
000000000000073c T_ZN12redisHandler11alarmCreateERKSsRSt6vectorISt4pairISsN5boost3anyEESaIS6_EES1_
"네 번째 매개 변수가 있습니다." 아니야. 꺽쇠 괄호를 세 심하게 조사하십시오. –
함수를 정의하고 링크 했습니까? – nurettin