직장에서 C++ 프로젝트의 특이한 오류가 발생했습니다.이상한 '정의되지 않은 참조'오류
수정 사항을 발견했지만 실제로 만족스러운 결과를 얻었습니다. 실제로 오류의 원인을 이해하고 싶습니다.
이 코드 조각을 구축 : SW_Agent_PP이 주석 것을
#include <iostream>
#include "snmp/snmp/SW_SNMP_Values.hpp"
#include "snmp/agent/SW_Agent.hpp"
#include "snmp/agent/SW_Agent_PP.hpp"
int main()
{
//SW_Agent_PP agent;
return 0;
}
공지 사항! 이것을 구축 할 때 SW_Agent_PP 객체에서 사용중인 클래스에 대해 정의되지 않은 참조 오류가 발생합니다.
FIX는 실제로 개체를 만드는 것입니다! 그래서 이렇게하면 :
#include <iostream>
#include "snmp/snmp/SW_SNMP_Values.hpp"
#include "snmp/agent/SW_Agent.hpp"
#include "snmp/agent/SW_Agent_PP.hpp"
int main()
{
SW_Agent_PP agent;
return 0;
}
모든 것이 잘 작동합니다.
무언가를 사용하지 않아서 링커 오류를 어떻게 잡을 수 있습니까? 이전에 비슷한 경험을 한 사람이 있는지, 그리고 그 원인을 발견 한 사람이 있는지 알고 싶습니다.
죄송하지만 회사 속성이므로 더 많은 코드를 공개 할 수 없습니다. 미리 감사드립니다.
'SW_Agent_PP'의 정의는 무엇입니까? 매크로입니까? –
.hpp 파일 중 하나의 버그와 같습니다. 아마도 누락 된 세미콜론. –
전체 수업. 머리글 및 .cpp 파일로 분할 – Daniel