本人研究僧一枚,老师给了使用QT开发遥感图像相关程序的课题,完全从零开始学习,查阅了许多的资料,过程里东拼西凑,碰壁无数。所以我就想写一些学习的心得体会,给自己复习使用,如果能够帮助到别人,那当然是最好的了。
废话不多说,进入正题。Opencv是计算机视觉很好用的库,gdal是遥感领域常用的库,鼎鼎大名的Arcgis就是基于gdal开发出来的。利用python我们可以简单的pip install,之后就可以简单的import了。但基于C++的QT就办不到了,这时候就需要自己去官网下载windows版本的源码,使用Cmake去编译,这个过程无比复杂,还会遇到很多错误,所以建议是下载已经编译好的库直接使用。
有了库之后,如何去使用也是很重要的。一般你得到的编译完成的库有三个部分是最重要的(这个很多文章都没有讲到,我自己探索了好久),将决定你是否能在之后的开发中使用这些库,以gdal为例,如图所示:
![](https://img-blog.csdnimg.cn/d9b6e7ae25284891a6b4c0f4f1bb30b1.png)
lib文件夹包含gdal的静态库文件。include文件夹,里面是你在开发过程中所调用的那些头文件。当你需要在QT中使用它们时,只需要右键你的项目-添加库-选择外部库,库文件目录选择lib文件夹下的gdal静态库文件,包含路径选择include文件夹,如下所示。
![](https://img-blog.csdnimg.cn/ef2a9af35dc24c67a6bd1a65676cb1a1.png)
当然还没结束,你还需要为你的工程提供动态库,否则程序会报错。bin中以.dll结尾的是程序运行时候需要的动态库,可以看到在bin文件夹中有3个.dll文件,分别是gdal302,gdal的前置库proj_6_3和sqlite3,这些dll文件需要拷贝到你建立的QT项目文件夹中,如果你没有特别设置,项目文件就是我的电脑-文档-build-xxxxx-Desktop_x86_windows_msvc2019_pe_64bit-Debug文件夹。
![](https://img-blog.csdnimg.cn/06000800869043869984457cbf373b95.png)
到此,gdal库配置完成就可以开心得使用它了,用同样的方法可以配置opencv。比较有意思的是,当你去网上搜索使用opencv的教程时候,你会发现大家都有如下蓝线勾画的代码。其实如果你去看win版本的opencv库文件结构,你就会明白这句话的意思是找include文件夹下的opencv2文件夹下的opencv.hpp头文件。虽然这个在大神看来很简单,但是这个细小的点却让我终于明白头文件,静态库和动态库如何去配置的。至于这三者之间的具体关系和作用,大家可以自己去度娘,有很多大神讲得非常清楚。
![](https://img-blog.csdnimg.cn/cf7975e711ed444aa8a32f8c261b6e6d.png)
![](https://img-blog.csdnimg.cn/f6d9a019674f4ae5b1753f1f8a7f1efb.png)
后来又配置了vs2017搭配qt的编译环境,在vs2017中配置方式也很类似,具体步骤如下,该步骤来自VS中添加第三方库及相对路径设置-阿里云开发者社区 (aliyun.com):
对于一些第三方的SDK,一般会包含头文件(*.h),静态库文件(*.lib)和动态库文件(*.dll)。
1. 文件位置:为了提高程序的可移植性,将第三库放在解决方案(*.sln)或者工程(*.vcxproj)文件所在的文件夹下。而不要放在其他地方,比如放在D:\某个位置,这样的话,程序在别的电脑上可能就无法运行了。
2. 头文件:在工程属性->VC++目录->包含目录中添加头文件目录 ; 使用相对路径添加。
3. 静态库文件:在工程属性->VC++目录->库目录中添加库文件目录;使用相对路径添加。
4. 链接库配置:在工程属性->链接器->输入->附加的依赖项;将相关的lib文件名写入即可。
5. 动态库配置:将所需的dll文件放在对应的realease和debug的文件夹下或者直接将dll文件放在工程文件夹下。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)