모든 시행착오를 기록한 글이다.
1. pcl github clone
2. dependencies 설치
그런데, 모든 dependencies들이 파악이 되지는 않는다.
우선, 대부분의 경우에 boost와 eigen3, cuda 등이 깔려있을 것이다. 왠만한 프로젝트에서 필요로 하는 패키지들이기 때문이다.
나의 경우, FLANN이 깔려있지 않았다.
FLANN을 깔기 위해선 lz4가 깔려있어야만 했다.
lz4를 깔고나면, FLANN을 깔 때에 문제가 생긴다. 관련된 문제 해결은 링크를 찾아놓았다.
https://stackoverflow.com/questions/50763621/building-flann-with-cmake-fails
그리고, 다시 mkdir build && cd build && cmake .. 를 해주자.
3. 끝나지 않는 dependencies
sudo apt install clang-format 로 clang-format을 깔아주자.
아직 몇가지 패키지가 말썽을 부리는 것이 보인다.
근데 makefile은 생성되어서, 그냥 make -j$(nproc) 를 돌려보았다.
그랬더니 에러는 뜨고, 또 진행은 되는 듯 보이지만, 빌드과정이 멈춘 것으로 보이는 문제에 도달했다.
예상되는 행동: 빌드 완료
실행중:
[ 29%] Building CXX object filters/CMakeFiles/pcl_filters.dir/src/random_sample.cpp.o
[ 29%] Building CXX object filters/CMakeFiles/pcl_filters.dir/src/normal_space.cpp.o
Consolidate compiler generated dependencies of target pcl_pcd_introduce_nan
[ 29%] Linking CXX executable ../../bin/pcl_pcd_introduce_nan
/usr/bin/ld: ../../lib/libpcl_io.so.1.12.1.99: undefined reference to `boost::system::system_category()'
/usr/bin/ld: ../../lib/libpcl_io.so.1.12.1.99: undefined reference to `boost::system::generic_category()'
collect2: error: ld returned 1 exit status
make[2]: *** [io/tools/CMakeFiles/pcl_pcd_introduce_nan.dir/build.make:107: bin/pcl_pcd_introduce_nan] Error 1
make[1]: *** [CMakeFiles/Makefile2:1113: io/tools/CMakeFiles/pcl_pcd_introduce_nan.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
에러: 그냥 멈춤
앞서서 dso_saving_with_pcl을 깔기위해 boost 버전을 낮췄었는데, 이번엔 boost 관련 문제가 다시 발생했다.
이 문제를 해결하면 빌드가 완료될 것을 보인다.