之前那个写的PDAL编译教程 CODE|编译带PDAL的cloudcompare
大部分人都成功编译了,但有些人也遇到一些问题,我来补充一下吧
问题1:
这个问题是依赖的dll没有配够,pdal的依赖很多,依赖了好多好多。
有些人不太懂dll是什么,这就科普一下
什么是DLL? 动态链接库(DLL)就像EXE,但它们不能直接执行。它们与Linux / Unix中的.so文件类似。也就是说,DLL是MS的共享库的实现。 DLL非常像EXE,文件格式本身是相同的。EXE和DLL都基于可移植可执行文件(PE)文件格式。DLL也可以包含COM组件和.NET库。 什么是DLL包含? DLL包含EXE或其他DLL使用的函数,类,变量,UI和资源(如图标,图像,文件等)。 图书馆的类型: 在几乎所有的操作系统上,都有两种类型的库。静态库和动态库。在Windows中,文件扩展名如下所示:静态库(.lib)和动态库(.dll)。主要区别在于静态库在编译时链接到可执行文件; 而动态链接库在运行时才会被链接。 更多关于静态和动态库: 您通常不会在计算机上看到静态库,因为静态库直接嵌入到模块(EXE或DLL)中。动态库是一个独立的文件。 一个DLL可以在任何时候被改变,并且只在EXE显式地加载DLL时在运行时加载。静态库在EXE中编译后无法更改。一个DLL可以单独更新而无需更新EXE本身。 加载DLL: 程序在启动时通过Win32 API LoadLibrary加载DLL,或者当它是另一个DLL的依赖项时。程序使用GetProcAddress加载函数或LoadResource来加载资源 |
解决方法:
如果你懒的话:
把 OSGeo4W64\bin 文件下的所有dll都放到目录下
如果你不懒的话,根据依赖一个一个放进去:就像这样
问题2:
debug模式下程序崩溃
这个问题主要 是debug release不对应的问题
pdal确实很先进,但他的编译很复杂,如果只是用的话,不改它自己的代码的话,用release就够用了。
问题3:
使用管理员权限打开vs
2020年11月10日
今天全面转战linux,冲