Visual Studio 2015编译Eviv2库

原文转载于:https://blog.csdn.net/u010431493/article/details/78950490

Visual Studio 2015编译Eviv2库

  • 预防针
  • 准备工作
  • 开始编译

预防针


最近在写一个照片管理的玩具项目,需要读取照片的exif信息,找来找去最后选定了exiv2这个第三方开源库,主要是支持的格式全面(详情参考:http://www.exiv2.org/metadata.html).之前在百度搜索了一些这个库相关的资料,发现很少,只有一篇博客讲述了如何使用,照葫芦画瓢写了一个,结果段错误(此时的心情......),在后来的搜索中终于知道了问题的所在,官方只提供了Release库没有提供Debug库,然而一般写代码的时候默认都是Debug模式,所以........下面开始编译exiv2
  • 1
  • 2

准备工作


1.Visual Studio 2015 
2.zlib源代码(http://www.zlib.net
3.expat源代码(https://libexpat.github.io/
3.exiv2源代码

注:我的源代码版本openssl-1.0.2n、exiv2-0.26、zlib1211

开始编译


1.建立一个工作目录exiv2,把exiv2的源代码放进去解压 
这里写图片描述
2.在exiv2\exiv2-0.26-trunk\exiv2-trunk\msvc下面有一个exiv2.sln打开 
这里写图片描述
3.打开的时候会有一个VS的单向升级,点确定就行(你只能点这个,你要点取消我也没意见) 
这里写图片描述
4.等待(10-30分钟左右) 
这里写图片描述
5.等待的时候我们可以先把其他工作做了,把zlib和expat的源代码分别解压到exiv2\exiv2-0.26-trunk目录下(需要修改zlib的文件夹名称,就是把后面的版本号去掉只剩一个zlib) 
这里写图片描述
6.单向升级完成后,在libexiv2的项目属性中可以看到这两个,这下知道为啥要把源代码exiv2\exiv2-0.26-trunk目录下了 
这里写图片描述 
7.选择自己想要的版本直接编译即可。如果出现下面这样的错误,直接将项目属性->配置属性->c/c++->常规,将“警告视为错误”的选项改为“否”。就搞定(警告不是错误) 
这里写图片描述
8.编译的时候注意运行时库、Release、Debug这几个选项要和以后的项目相对应 不然会出现一些奇奇怪怪的bug。

注意: 
如果报writeRandomBytes_RtlGenRandom链接错误,请将expat库的源码换成低版本的,官方的readme中使用的是expat-2.1.0 
下面这个是一个expat的一个版本漏洞(CVE-2017-11742)貌似后面的版本修复了。所以报链接错误。有兴趣的可以点下面的链接查看具体的信息。 
https://www.cvedetails.com/cve/CVE-2017-11742/


有任何问题欢迎拍砖(轻点。。。。。)


猜你喜欢

转载自blog.csdn.net/business122/article/details/80832622