vs移植的.exe再编译无法更新_CODE|编译带PDAL的cloudcompare(补充)

之前那个写的PDAL编译教程   CODE|编译带PDAL的cloudcompare  

大部分人都成功编译了,但有些人也遇到一些问题,我来补充一下吧

问题1:

e79a38768bdbf6222a629f29fdf0fa55.png

这个问题是依赖的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都放到目录下

如果你不懒的话,根据依赖一个一个放进去:就像这样

066c4585afd1a17bab756e2ec945290a.png

问题2:

debug模式下程序崩溃

2c94c887dcb3d51b58a8b679524a97b1.png

79c8a4f3871d5947b5a826931978ad18.png

3d0eddb71d0e56ec3bdd0804fd5bb3cb.png

这个问题主要 是debug release不对应的问题

pdal确实很先进,但他的编译很复杂,如果只是用的话,不改它自己的代码的话,用release就够用了。

问题3:

0c7ee5e33d8a681a2853c412ad7b37c3.png

使用管理员权限打开vs

2020年11月10日

今天全面转战linux,冲

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值