解决ubuntu16.04配置liblas1.8.1遇到recipe for target ‘src/CMakeFiles/las.dir/header.cpp.o‘ failed的问题

解决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

  • 18
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值