【发布时间】:2012-02-27 01:06:51
【问题描述】:
我的 C 程序使用了一些 zlib 函数(如 gzopen、gzread)。我在我的程序中包含了zlib.h 头文件,并在编译时添加了-lz 选项,但我仍然收到gz 函数具有未定义引用的错误。我正在使用 kubuntu 11.10 并安装了以下软件包:libgh-zlib-dev、zlib1g-dbg、zlib1g 和 zlib1g-dev。
我曾尝试更改链接命令的位置,但没有成功。这是我目前拥有的:
CFLAGS=-Wall -pthread -lm -lz -std=c99 -Wextra
【问题讨论】:
-
请显示您的链接命令。你可能把
-lz放错地方了。 -
你到底是怎么编译的? CFLAGS 由 automake 生成的脚本使用,而不是 gcc 直接使用...
-
@HubertKario -- CFLAGS 被
make理解(和使用);它会根据需要提供给 C 编译器。 -
解决了!我在我的 CFLAGS 中尝试了 -lz 的所有位置,但实际上我不得不把它放在源文件名之后。所以命令:“gcc -Wall -pthread -lm -std=c99 -Wextra src/main.c -lz -o ad" 成功了!
-
用上面的评论回答你自己的问题怎么样?然后标记为已接受。
标签: c compilation hyperlink zlib undefined-reference