2012-02-04 155 views
7

我的C程序使用一些zlib函数(如gzopengzread)。我在我的程序中包含了zlib.h头文件,并在编译时添加了-lz选项,但仍然收到gz函数具有未定义引用的错误。我使用kubuntu 11.10并安装了以下软件包:libgh-zlib-dev,zlib1g-dbg,zlib1g和zlib1g-dev。未定义引用'gzopen`错误

我已经尝试改变链接命令的位置,但没有运气。这是一个我此刻:

CFLAGS = -Wall -pthread -lm -lz -std = C99 -Wextra

+5

请显示您的链接命令。你可能会把'-lz'放在错误的地方。 – 2012-02-04 22:33:23

+0

你是如何精确编译的? CFLAGS由automake生成的脚本使用,而不是直接由gcc生成。 – 2012-02-04 23:02:56

+0

@HubertKario - CFLAGS通过'make'理解(和使用);它会根据情况提供给C编译器。 – 2012-02-04 23:38:51

回答

9

把他们当成LDFLAGS的一部分,它应该是这样的:

gcc -Wall -pthread src/main.c -lm -lz -std=c99 -Wextra -o main