비정형 체적 알고리즘에서는 pcl 라이브러리를 사용하고 있다.
C++ 라이브러리 호환성 문제는 pcl 라이브러리에도 있을것으로 예상되므로,
크로스 컴파일러를 사용해서 재 빌드해야 하는 상황이다.
pcl 라이브러리 빌드를 위한 환경을 구성한다
모든 라이브러리를 제공할 필요는 없다.
비정형 체적 알고리즘에서 필요한 pcl 라이브러리는 다음과 같다
common 만 켠 상태에서 빌드가 잘 되는 걸 확인하고,
이후에 하나씩 켜보는 과정을 통해, pcl 라이브러리는 다음 의존성 구조를 갖는걸 확인하였다.
boost : filesystem, iostreams, system
eigen
flann
eigen 과 flann 은 conan 에서도 제공하고 있다.
이 둘을 conan 로컬 캐시에서 복사해서 사용하면 되겠다는 생각이 들었다.
하지만, 한가지 문제가 있다.
pcl 라이브러리를 빌드할때 이 둘을 쓰려면,
find_module 매크로에서 찾을수 있게 별도의 설정파일(.cmake) 을 작성해야 한다.
find_module 매크로는 2가지 방식 (config / module) 으로 설정파일을 찾는데
pcl 에서는 config 방식의 설정파일을 필요로 하고있다.
find_module 이 config 설정파일을 찾는 위치는 CMAKE_PREFIX_PATH 로 추가가 가능하다.
다음으로 boost 의 경우,
conan 에서 제공하긴 하나, 버전이 한개만 있으므로 직접 빌드하는 방향으로 설정하였다.
pcl 이 find_module 로 시스템의 boost 를 찾지 않고, 빌드한 boost 를 사용할수 있도록
BOOST_ROOT 환경변수를 설정해준다.
pcl 이 boost 를 사용하려면, lz4 와 benchmark 가 필요한데 이 둘은 conan 에서 제공하고 있다.
pcl 빌드시, 두 라이브러리를 사용할수 있게, 적절히 헤더 경로와 라이브러리 경로를 잡아준다.
또한, pcl 빌드시 mtune 값 지정이 필요하다 (지정하지 않으면, 시스템 값을 그대로 사용)
노바텍 보드는 ca73 이므로, CMAKE_CXX_FLAGS 에-mtune=cortex-a73 를 추가한다.
https://asciinema.org/a/714886