首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

undefined reference to `inflateInit_'|编译异常的诡异解决方法

2012-04-11 
undefined reference to `inflateInit_|编译错误的诡异解决办法编一个小程序用到了png库和zlib库。我发现

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 "-)" 不过这样链接的速度好慢的说..

热点排行