解决ubuntu下配置liblas1.8.1遇到的recipe for target ‘src/CMakeFiles/las.dir/header.cpp.o’ failed问题
前提:已安装好各种依赖库,如boost,cmake,libgeotiff等.
将下载好的liblas包解压后
cd liblas
mkdir makefiles
cd makefiles
cmake ..
make
sudo make install
在make这一步可能出现的问题:
src/CMakeFiles/las.dir/build.make:198: recipe for target 'src/CMakeFiles/las.dir/header.cpp.o' failed
make[2]: *** [src/CMakeFiles/las.dir/header.cpp.o] Error 1
CMakeFiles/Makefile2:270: recipe for target 'src/CMakeFiles/las.dir/all' failed
make[1]: *** [src/CMakeFiles/las.dir/all] Error 2
Makefile:181: recipe for target 'all' failed
make: *** [all] Error 2
此问题与boost库有关,源码作者给出的回复:
按上述方式修改header.cpp文件后,重新编译liblas:
cmake ..
make
此时会出现:
src/CMakeFiles/las_c.dir/build.make:81: recipe for target 'src/CMakeFiles/las_c.dir/c_api.cpp.o' failed
make[2]: *** [src/CMakeFiles/las_c.dir/c_api.cpp.o] Error 1
CMakeFiles/Makefile2:243: recipe for target 'src/CMakeFiles/las_c.dir/all' failed
make[1]: *** [src/CMakeFiles/las_c.dir/all] Error 2
Makefile:181: recipe for target 'all' failed
make: *** [all] Error 2
找到两处错误的地方:
在c_api.cpp boost部分的头文件中添加#include<boost/bind/bind.hpp>
,在LASErrorEnum LASReader_SetOutputSRS(LASReaderH, LASSRSH)和LASErrorEnum LASWriter_SetOutputSRS(LASWriterH, LASSRSH)函数前添加using namespace boost::placeholders;
重新编译
cmake ..
make
sudo make install
此时应该成功了,输入以下命令进行测试:
lasinfo ../test/data/TO_core_last_clip.las
出现以下信息:
参考文章: https://blog.csdn.net/woosual/article/details/106732486