DSO SLAM 설치시에는 주로 두가지 에러가 떴었다.
opencv, pangolin
설치 순서상으론 opencv 를 설치하므로 이거 에러를 먼저 해결해야될 것 같지만, 수정해야할 소스코드가 적으니 그냥 opencv4를 쓰고 나중에 빌드 먼저 시도하고 난 에러를 수정하는 방법을 택했다.
1. Pangolin 설치
Pangolin은 git repository에서는 설치하는게 간단해 보인다. 그런데, 나중에 dso slam 빌드 명령어 결과(cmake ..)를 자세히 보면 could not found Pangolin 이라는 상태가 표시될 수도 있다. 그거는 Pangolin이 빌드는 되었는데, 설치가 안된 상황이라고 봐야한다.
원인은 자세히 모르겠으나, Pangolin repository에서 v0.6 을 받아와 빌드하면 잘된다.
2. opencv 버전 호환문제
아마도 소스코드가 좀 예전 버전의 opencv를 사용하는 듯 하나, 요즘엔 opencv4로 설치하고 프로젝트를 빌드하는 경우가 있어 호환 문제가 있다. cv_functionName 이 부분을 구글에 검색하면, 해답이 나온다. 대부분 cv::functionName인데, 이 함수명도 약간씩 바뀔 때가 있다(그러니 검색하자).
c++로 쓰여진 해당 패키지의 여러 헤더 파일에서 다음과 같은 오류가 많이 발생했다. 오류가 발생한 모든 헤더파일에 아래와 같이 적어준다.
3. 가끔 날 수도 있는 에러.
/usr/local/include/sigslot/signal.hpp:109:79: error: ‘decay_t’ is not a member of ‘std’ ; did you mean ‘decay’?
전처리기 부분에서는
#include <functional>
using namespace placeholders