【问题标题】:undefined reference to `gzopen` error未定义对“gzopen”错误的引用
【发布时间】:2012-02-27 01:06:51
【问题描述】:

我的 C 程序使用了一些 zlib 函数(如 gzopengzread)。我在我的程序中包含了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


【解决方案1】:

将它们作为 LDFLAGS 的一部分,它应该如下所示:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-03
    • 2021-09-07
    • 2012-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多