sqlit、tiff以及proj编译

由于安装cartopy需要这些库编译的dll文件,所以完全不懂这些的开始进行编译,有很多文章都进行了详细的安装解释,这里不多详述,只说下我在编译时遇到的各种问题。

1.编译proj的前期准备

需要先配置好tiff和sqlite两个,也许是版本的问题,8.2需要这两个依赖库进行编译

proj.dll使用http://t.csdnimg.cn/sM2Mc 这篇文章里的方法进行生成,sqlite的配置也在这篇里有链接)(这个最后看,需要先进行依赖库的配置),刚好我也在使用cmake就不用下载这个了。

Download CMake(放个cmake下载地址)

但是,由于一直报错找不到相应文件,先后下载了,proj 8.2.1;sqlite3460000;tiff进行配置.....因为proj需要依赖sqlite和tiff库进行配置,tiff的编译在这里https://zhuanlan.zhihu.com/p/699900634 这个是只用vs的,因为我有cmake,还是用的cmake,下面是用cmake的windows下使用cmake+vs2015编译libtiff4.5.0_windows编译libtiff库-CSDN博客

推荐这个博主的,很全面,三个库编译步骤很详细Win11下基于cmake-3.26.3 完美编译 proj-9.2.0 源码_proj9需要tiff-CSDN博客

里面都给了相应的链接,直接配置sqlite、tiff、proj。

我编译依赖库时并没有发生很多错误,只是有一个exe文件无法生成,我也写在了下面如何处理。

步骤就是,先下载tiff和sqlite进行编译,生成相应文件;接着把proj放入cmake里进行编译,报错后,将里面出现的tiff和sqlite这两个路径放进去重新运行。

出现报错后将蓝框里的替换为刚刚生成的sqlite和tiff文件的路径,里面所有notfound都需要进行替换,不仅仅是蓝框里的,

编译时的各种报错

1.sqlite.exe生成失败

就在我以为真的可以了。发现刚刚的sqlite.exe没有生成,因为有n多报错,致使这个exe文件无法生成。

在百度了一下发现有人安装了别的文件,我就又去官网看了一下,发现下面有辅助的文件,下载了之后里面果然有exe文件,很高兴,这个问题解决了

2.找不到对应tiff.dir文件

但下一个报错就是,tiff,说找不到相应dir文件,搜这个问题只在一个国外论坛上看见,可能需要做的是安装开发包 libtiff5-dev,并重新运行任何构建配置步骤,很崩溃,这报错什么时候能结束。但错误提示说找到了4.6.0版本,那是不是我安装的版本有问题,所以重新下载4.5.0 tar.gz版本试试,发现还是不对,又找了一篇,这里面有tiff和sqlite的配置,但我刚刚的步骤基本一样,却还是报错,问题还是在tiff_dir上。

最后经过几个小时奋斗,先把刚刚编译好生成的tiff中lib直接移动到默认的文件夹里,因为一直的dir报错,我换路径运行后还是变成默认路径,所以直接移过去,果然报错内容变了,成为找不到tiffd.dll,那就说明我没移对文件夹,那就把tiff编译好的文件中的bin移动过去,果然 ,成功了,下面这个报错那个链接里也说了不用管,有相应的解决方法,终于可以更进一步了。

注意:需要拷入所有刚刚编译好的tiff文件,不要只拷这个里面所需要的(不然就是下面的报错1)

3.多处文件cmakelist.txt里设定的版本太低

很不幸新的报错又出现了,说我某个文件里的cmakelist.txt里设定的版本太低,所以进去相应文件进行修改。把所有报错版本的全替换一遍。。替换内容在下面这篇,变成min...max解决CMake报“Compatible with CMake < 2.8.12 will be removed“问题_compatibility with cmake < 2.8.12 will be removed -CSDN博客

4.无法找到PythonInterp

还有其他的错误,第一个就是 FindPythonInterp找不到,一直以为是没有这个东西,不得已去找 FindPythonInterp的练习题目,出现了新的报错提示才发现是在cmake3.1.2版本,这个已经废弃了,需要用别的替换;但这个也不对,因为上面仅仅是找到PythonInterp这个包,可是我明明已经安装python3.8版本但却无法找到,编译中的 CMP0148 警告_policy cmp0148 is not set: the findpythoninterp an-CSDN博客

。。。。因为一直提示说PythonInterp,我在python中找解释器的位置,就是python.exe(打开pycharm——setting——Project,点击Python interpreters),所以我直接把find package(Python interp)改成find package(Python.exe),还是报错,真想不明白哪里错了,直到,我思考提示说:“Python.exe”提供了一个单独的开发包或SDK,请确保它已安装。我明明安装了,我把exe去掉试试。终于成功了。把报错文件里find package(Pythoninterp)改为find package(Python),其他的错误也没有了,继续下一步。

2.proj_8_2.dll的生成

上个步骤已经成功将proj的项目完成,现在只需要最后的编辑,刚刚放的两个链接都可以参考(http://t.csdnimg.cn/sM2Mc或者Win11下基于cmake-3.26.3 完美编译 proj-9.2.0 源码_proj9需要tiff-CSDN博客),按照最后的步骤在命令符或者vs里生成。(在vs打开该项目,右键all bulid进行debug和release版生成。

出现错误

1.在proj的解压文件夹中无法找到tiffio.h等文件

明明已经下载了tiff,为什么还是找不到,一顿查找、反复看我之前的生成过程,也许可能是我在将tiff的路径改变到cmake的路径下时,没有把其他的配置文件一同拷入,所以重新将编译好的tiff所有文件加入了cmake路径下(上面报错2),并在proj文件中也拷入一份,在项目——属性——VC++目录——包含目录中加入tiffio.h的路径

这个就成功不报错了。

2.LNK2019

但在上述问题解决后,又出现了LNK2019的报错,使用了无法解释的tiff的一些变量

多方搜寻后,改变基本配置:项目——属性——常规——配置类型,由动态库改为静态库,终于生成成功release和debug版,至此,终于生成了proj_8_2.dll,所以我并没有继续研究动态库的相关生成,大家可以再自行查找。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值