이것은 백만 번 응답되었을 것입니다. 그러나 적절한 해결책을 찾을 수 없습니다.g ++ 정의되지 않은 스탠딩 함수에 대한 참조
나는 sensor.cpp
에 무료 기능을 정의했습니다 :
std::string printTargetGasName(enalu::CombThreshold::TargetGas){}
가 그럼 난 함수의 프로토 타입을 선언 한
std::string printTargetGasName(enalu::CombThreshold::TargetGas);
sensor.hpp
에 그럼 난 core_enose.hpp
에서 sensor.hpp
을 포함하고 시도 core_enose.cpp
에있는 함수를 사용하려면 (enalu
은 단지 na입니다. mespace). 나는 또한보고 확인
g++ -g -Wall -Wextra -pedantic -std=c++11 [...] obj_dbg/core_enose.opp [...] obj_dbg/sensor.opp [...]
다음 sensor.opp가 core_enose.opp 다음에 오는 즉
내가 오류를 메이크 파일에
core_enose.cpp:284: undefined reference to `enalu::printTargetGasName(enalu::CombThreshold::TargetGas)'
링킹 지침을 연결 undefined reference
얻을이 올바른 것 symbol이 sensor.opp 파일에 올바르게 존재하는 경우 :
$> nm obj_dbg/sensor.opp | grep printTarget
$> 000000000000cc9c T _Z18printTargetGasNameN5enalu13CombThreshold9TargetGasE
extern
과 같은 필사적 인 심야 측정을 시도했거나 sensor.hpp를 직접 core_enose.cpp 파일에 포함 시켰습니다. 아무 것도 도움이되지 않으며이 시점에서 나는 절망적 인 간단한 대답에 좌절감을 느낍니다.
sensor.?pp 파일에는 내 프로그램에서 사용하고있는 몇 가지 클래스가 포함되어 있기 때문에 코드를 제공하지 않습니다. 위에서 설명한 것은 다른 기능을하는 응용 프로그램에이 무료 기능을 추가하기 위해 제가 수행 한 정확한 단계입니다.
도와 주시겠습니까?
정확하게 sensor.hpp에서 함수를 선언 한 방법입니까? –
@ YanZhou 아니, 나는 단순히 구현의 내부를'{...} '사이에 생략했습니다. (또한 함수의 복귀를 고정하는 걸 잊었습니다.) – nass
Yan Zhou의 질문은 구현이 아니라 .hpp 파일의 선언에 관한 것입니다. –