GCC/G++/Make/configure 一个诡异的编译、链接、依赖库问题(magick库)

在将GCC从4升级到8并重新编译ImageMagick库时,遇到编译错误提示libpng库不兼容。经过分析发现,实际上是由于configure在检查libpng时找不到其依赖的zlib库。解决方案是通过在`configure`执行时指定zlib库的路径,通过LDFLAGS和LIBS选项添加自定义库目录和链接库,确保编译成功并包含libpng的导出函数。
摘要由CSDN通过智能技术生成

一、问题现象

从GCC4切换到GCC8,重新编译magick库,在编译过程中却出现依赖库不合要求的问题、比如下面的libpng库突然check不通过,编译出来的magick里没有png库,咋一看提示似乎是版本库不兼容了,之前可以work的编译脚本“突然”失灵了。but my god!这是在源码编译,而且libpng库源码是1.6,理论上不应该出现这种问题,最多出现语法不兼容这类问题。
在这里插入图片描述

二、原因追查

在一脸懵逼中,打开主编译的makefile文件一看究竟,也没发现有什么问题,由于有一段时间没有搞C代码的编译了,之前对于makefile文件残留的主要是印象,只好花时间再次收集make相关的资料重温一遍,刚开始认为主makefile没有什么明显的问题,这么个认知埋下了折腾的种子。
(1)接着以png库编译问题为线索,开始追查,先是对png库源代码库进行check,版本ok,手动编译也ok,见鬼了,难道真的是GCC8抽风了,有点认知“颠覆”的错觉,只好clean编译产出,重新编译主makefile试了几把,发现还是不行!
(2)费解中,觉得还是扎扎实实找找日志看看细节,先重定向收集主makefile编译的日志,有点费劲,遂放弃。直入主题,既然是magick不能编入png库,那就看看为啥不能编入ÿ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值