Win10+VS2019+CMake源码编译PDAL,用于读las文件

目录

一、依赖关系、编译先后顺序

二、cmake编译curl

三、cmake编译zlib

四、cmake编译tiff

五、nmake编译tcl

六、nmake编译sqlite

七、cmake编译Proj

八、cmake编译GeoTiff

九、cmake编译GDAL

十、cmake编译PDAL

十一、OSGeo4W下载编译好的dll

十二、C++的exe项目中调用pdalcpp.dll

十三、对比Debug与Release

1、当前是Debug x64,配置中引用OSGeo4W下载的

1.1、没有拷贝OSGeo4W下载的dll、自己编译的dll:报错找不到dll

1.2、拷贝Geo4W下载的dll:bad_alloc异常

1.3、拷贝自己编译的dll:成功

2、当前是Debug x64,配置中引用自己编译的

2.1、没有拷贝OSGeo4W下载的dll、自己编译的dll:报错找不到dll

2.2、拷贝OSGeo4W下载的dll:bad_alloc异常

2.3、拷贝自己编译的dll:成功

3、当前是Release x64,配置中引用OSGeo4W下载的

3.1、没有拷贝OSGeo4W下载的dll、自己编译的dll:报错找不到dll

3.2、拷贝OSGeo4W下载的dll:成功

3.3、拷贝自己编译的dll:bad_alloc异常

4、当前是Release x64,配置中引用自己编译的

4.1、没有拷贝OSGeo4W下载的dll、自己编译的dll:报错找不到dll

4.2、拷贝OSGeo4W下载的dll:成功

4.3、拷贝自己编译的dll:bad_alloc异常

十四、将pdalcpp.dll封装成供C#调用的dll

十五、参考


一、依赖关系、编译先后顺序

curl、zlib、tiff用cmake编译,tcl用nmake编译。

sqlite用nmake编译。

Proj用cmake编译。

GeoTiff用cmake编译。

GDAL用cmake编译。

PDAL用camke编译。

CMake用3.31.0版。

创建一个文件夹Build,存放所有项目的源代码;创建一个文件夹Install,存放所有项目安装的内容。

在每个项目的源代码文件夹中,创建build文件夹,用于cmake。

二、cmake编译curl

github_curl_master

Configure设置变量值:

CMAKE_INSTALL_PREFIX=F:/Install/CURL

Generate->Open Project->生成ALL_BUILD->生成INSTALL

三、cmake编译zlib

github_zlib_v1.3.1

Configure设置变量值不生效:

CMAKE_INSTALL_PREFIX=F:/Install/zlib

需要在F:/Build/zlib-1.3.1/CMakeLists.txt中增加:

set(CMAKE_INSTALL_PREFIX "F:/Install/zlib" CACHE PATH "Installation Directory" FORCE)

Generate->Open Project->生成ALL_BUILD->生成INSTALL

四、cmake编译tiff

linuxfromscratch_tiff_4.6.0

Configure设置变量值:

CMAKE_INSTALL_PREFIX=F:/Install/tiff

Generate->Open Project->生成ALL_BUILD->生成INSTALL

五、nmake编译tcl

github_tcl_main(编译会出错)

sourceforge_tcl_9.0.0official_tcl_9.0.0(用这个版本编译)

编译参考:

https://www.tcl-lang.org/doc/howto/compile.html

sqlite-master/README.md

sqlite-master/doc/compile-for-windows.md

tcl9.0.0/README.md

tcl9.0.0/win/README

打开“x64 Native Tools Command Prompt for VS 2019”,执行以下命令

cd F:/Build/tcl9.0.0/win

nmake /f makefile.vc release

nmake /f makefile.vc INSTALLDIR=F:/Install/tcl

cp F:/Install/tcl/bin/tclsh90.exe F:/Install/tcl/bin/tclsh.exe

六、nmake编译sqlite

基于tcl,sqlite用nmake编译

github_sqlite_master(用这个版本编译)

official_sqlite_3.47.0

打开“x64 Native Tools Command Prompt for VS 2019”,执行以下命令

cd F:/Build/sqlite-master

set TCLDIR=F:/Install/tcl

set PATH=F:/Install/tcl/bin;%PATH%

nmake /f Makefile.msc

可能F:/Build/sqlite-master/autosetup/jimsh0.c中报错,需要把报错位置的{}删掉。

七、cmake编译Proj

基于curl、sqlite、tiff,Proj用cmake编译

github_proj_master

Configure设置变量值:

INCLUDE_DIR应该是.h文件所在目录,一般是include目录;

LIBRARY_RELEASE应该是.lib文件,一般在lib目录下。

CMAKE_INSTALL_PREFIX=F:/Install/PROJ

CURL_INCLUDE_DIR=F:/Install/CURL/include
CURL_LIBRARY_RELEASE=F:/Install/CURL/lib/libcurl-d_imp.lib

EXE_SQLITE3=F:/Build/sqlite-master/sqlite3.exe
SQLite3_INCLUDE_DIR=F:/Build/sqlite-master
SQLite3_LIBRARY=F:/Build/sqlite-master/sqlite3.lib

TIFF_INCLUDE_DIR=F:/Install/tiff/include
TIFF_LIBRARY_RELEASE=F:/Install/tiff/lib/tiffd.lib

取消GTest,具体操作见[参考]中的内容。

Generate->Open Project->生成ALL_BUILD->生成INSTALL

八、cmake编译GeoTiff

基于Proj、tiff,GeoTiff用cmake编译,得到静态库。

github_libgeotiff_1.7.1

Configure设置变量值:

CMAKE_INSTALL_PREFIX=F:/Install/GeoTIFF

PROJ_INCLUDE_DIR=F:/Install/PROJ/include
PROJ_LIBRARY=F:/Install/PROJ/lib/proj_d.lib

TIFF_INCLUDE_DIR=F:/Install/tiff/include
TIFF_LIBRARY_RELEASE=F:/Install/tiff/lib/tiffd.lib

Generate->Open Project->生成ALL_BUILD->生成INSTALL

九、cmake编译GDAL

基于curl、GeoTiff、Proj、tiff、zlib,GDAL用cmake编译

github_gdal_3.8.5

Configure设置变量值:

CMAKE_INSTALL_PREFIX=F:/Install/gdal

CURL_INCLUDE_DIR=F:/Install/CURL/include
CURL_LIBRARY_RELEASE=F:/Install/CURL/lib/libcurl-d_imp.lib

GEOTIFF_INCLUDE_DIR=F:/Install/GeoTIFF/include
GEOTIFF_LIBRARY_RELEASE=F:/Install/GeoTIFF/lib/geotiff_d.lib

PROJ_INCLUDE_DIR=F:/Install/PROJ/include
PROJ_LIBRARY_RELEASE=F:/Install/PROJ/lib/proj_d.lib

TIFF_INCLUDE_DIR=F:/Install/tiff/include
TIFF_LIBRARY=F:/Install/tiff/lib/tiffd.lib
TIFF_LIBRARY_RELEASE=F:/Install/tiff/lib/tiffd.lib

ZLIB_INCLUDE_DIR=F:/Install/zlib/include
ZLIB_LIBRARY_RELEASE=F:/Install/zlib/lib/zlibd.lib

当没有External库时,使用Internal库。

Generate->Open Project->生成ALL_BUILD->生成INSTALL

十、cmake编译PDAL

基于zlib、curl、Proj、GeoTiff、GDAL,PDAL用cmake编译

githut_pdal_master

需要在F:/Build/PDAL-master/cmake/geotiff.cmake中增加:

find_package(TIFF)

在F:/Build/PDAL-master/CMakeLists.txt中增加:

${TIFF_INCLUDE_DIR}
${TIFF_LIBRARY}

Configur

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值