c++配置LibJpeg库与Opencv库发生问题的解决

        因为要压缩JPEG文件,用到了LibJpeg库,从官网下载后,需要用vs2017去编译才能生成libjpeg.lib文件(vs2017的命令行+nmake),完成后,将库的环境配置好后发现会报”无法解析的外部符号“,然后查看jpeg库的相关函数定义实现,发现有的可以进入到jpeglib.h,有的进不去,提示重载到了CV下面,才想起这个项目用到了Opencv,查看opencv库下面确实有jpeg.lib文件,属于安装opencv时的第三方库吧。这样就会产生系统不知道该用哪个.lib里的函数,就会报错”无法解析的外部符号“。

        网上很多办法说,安装opencv的时候,把关于Jpeg相关的第三方库不要安装,但嫌太麻烦,也没去试,而且记得安装的时候好像没见到第三方库勾选的地方(忘了。。。)。

        后来想到一个办法,把using namespace cv;这个去掉,用到cv的地方就直接cv::,然后想这样就不会起冲突,但还是不行。。

        最后解决办法:将头文件#include <jpeglib.h>(就用到这一个头文件),将这个头文件改名(因为cv也会有这个头文件),改成了#include <jpeg_lib.h>,然后在这个头文件里所有用到这个头文件的地方全替换掉了,然后还是报错,想到因为很多库文件,库文件里面也有很多用到这个头文件的地方,改了后,其他库文件用不了,自然报错,所以在Notepad++下查找这个库下所有文件里面所有用到#include <jpeglib.h>的地方,全部替换为#include <jpeg_lib.h>,然后再将libjpeg.lib文件也改名(cv下也有这个)为lib_jpeg.lib文件,然后重新用vs2017命令行+nmake编译(需要先clean一下),完成后,在配置环境的库目录的附加依赖项的输入里面对于的也改为lib_jpeg.lib,这样就ok了。

总结:发生库之间冲突的问题,都可以用这种方式解决,如果哪位大神有更好的解决办法,希望不吝赐教。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值