Sophus 컴파일 오류
FIND_PACKAGE(sophus REQUIRED)
TARGET_LINK_LIBRARIES(${PROJECT_NAME}
${Sophus_LIBRARIES})
Sophus를 컴파일하는 동안 다음과 같은 오류가 발생했습니다.
../lib/libmyslam.so: undefined reference to `Sophus::SO3::SO3(double, double, double)'
../lib/libmyslam.so: undefined reference to `Sophus::SE3::operator*(Eigen::Matrix const&) const'
../lib/libmyslam.so: undefined reference to `Sophus::SE3::SE3(Sophus::SO3 const&, Eigen::Matrix const&)'
../lib/libmyslam.so: undefined reference to `Sophus::SE3::operator*(Sophus::SE3 const&) const'
../lib/libmyslam.so: undefined reference to `Sophus::SE3::log() const'
../lib/libmyslam.so: undefined reference to `Sophus::SE3::operator=(Sophus::SE3 const&)'
../lib/libmyslam.so: undefined reference to `Sophus::SE3::inverse() const'
../lib/libmyslam.so: undefined reference to `Sophus::SE3::SE3()'
../lib/libmyslam.so: undefined reference to `Sophus::SE3::SE3(Sophus::SE3 const&)'
collect2: error: ld returned 1 exit status
원인 분석: Sophus를 설치할 때 lib 파일인'libSophus.so'가/usr/local/lib/libSophus에 나타납니다.(본인이 컴파일할 때 마지막으로sudomake install을 실행했기 때문에 시스템 폴더에 이lib 파일이 있습니다.)FIND_ 실행 시PACKAGE(sophus REQUIRED) 시 libSophus.so Sophus_LIBRARIES, 그러나 cmake가 연결되지 않았기 때문에 이 오류가 발생했습니다.
해결 방법: 명시적으로 Sophus_LIBRARIES는 libSophus에 연결됩니다.so,CMakeLists.txt 코드는 다음과 같습니다.
FIND_PACKAGE(sophus REQUIRED)
set(Sophus_LIBRARIES libSophus.so)
TARGET_LINK_LIBRARIES(${PROJECT_NAME}
${Sophus_LIBRARIES})
참고: set 뒤에는 "{}"대신 괄호 () 가 있습니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
oat++ 서버. 설치. CmakeLists.txt서버를 만들기 위해 oat++ 프레임워크를 사용하겠습니다. 데이터를 저장하기 위해 먼저 sqlite를 사용하겠습니다. 또한 oat++ 및 해당 모듈을 복제하려면 git을 설치해야 합니다. 우선 oat++ 자체와 두 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.