读书人

undefined reference to `inflateInit

发布时间: 2012-04-11 17:42:33 作者: rapoo

undefined reference to `inflateInit_'|编译错误的诡异解决办法
编一个小程序用到了png库和zlib库。我发现编译png静态库时,只需要指定zlib库的头文件路径,但并不需要链接到zlib库(这个我感觉有点奇怪)。 然后编译自己写的程序时出现一个错误:

undefined reference to `inflateInit_'|

inflateInit是zlib库的一个函数,这里编译错误为何会变为inflateInit_呢?我检查了我的包含头文件路径和lib文件,都设置好了,为何会出现这个错误呢?后来很偶然的想到是不是链接库的顺序问题,就改了下顺序,将下图的:



修改为下图:



即把png库提到zlib库的前面然后重新编译这个编译错误就消失了。这是为什么呢?

我的编译环境为:Win xp + sp2,CodeBlocks10.05,编译器为mingw32gcc。

[解决办法]
LZ把这个配置改到前面的那种,然后clean工程再编译试试

有时IDE总是忘记重新编译或链接库

[解决办法]
很正常三, gcc 从前到后在各个符号, 找不到就报错, 又不会往前面去找..
不喜欢就在编译选项就用 -Xlinker "-(" $(LIBS) -Xlinker "-)" 不过这样链接的速度好慢的说..

读书人网 >C++

热点推荐