undefined reference to `inflateInit_'|编译异常的诡异解决方法
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 "-)" 不过这样链接的速度好慢的说..
编一个小程序用到了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 "-)" 不过这样链接的速度好慢的说..