【问题标题】:compile C in CentOS face error: undefined reference to [duplicate]在 CentOS 中编译 C 时遇到错误:未定义对 [重复] 的引用
【发布时间】:2015-05-10 08:55:16
【问题描述】:

我在 CentOS 中编译 C 并遇到这个错误:

cc -c -o obj/BT.o BT.c -I./include -I/usr/dialogic/inc cc -o BT obj/BT.o obj/util.o -I./include -I/usr/dialogic/inc -L/usr/dialogic/lib

obj/BT.o:在函数'main'中:

BT.c:(.text+0x52): 未定义对 `gc_Start' 的引用

collect2: ld 返回 1 个退出状态 make: *** [BT] 错误 1

我已经链接到库 -L/usr /dialogic/lib 但我不知道为什么它在创建二进制文件时没有链接 拜托,谁能给我一些建议?

【问题讨论】:

  • -L 选项是告诉链接器在哪里搜索库,它实际上并不与任何库链接,因为你需要-l (小写 L) 选项。
  • 您只指定了一个链接路径 - 您还需要通过-lname 指定库,其中name 表示libname.a
  • 感谢您的回答。这是我的库,它是动态库:libgc.so,我已经使用了-llibgc 选项,它显示错误/usr/bin/ld: cannot find -llibgc。这是我的命令:`cc -o rrbt obj/BT.o obj/util.o -I./include -I/usr/dialogic/inc -L/usr/dialogic/lib -llibgc`
  • 我只使用-lgc 它显示错误:/usr/bin/ld: skipping incompatible /usr/dialogic/lib/libgc.so when searching for -lgc。这是由于与当前 gcc 不兼容的 lib 造成的吗?
  • 我只是修复它。我将代码移动到 CentOS 32 位,它编译得很好,可能是由于 CenOS 64 位中的 lib 不兼容。非常感谢

标签: c++ c linux centos


【解决方案1】:

检查您是否保存了您的 .c 文件,并检查函数定义及其调用的拼写。

【讨论】:

  • 虽然这个答案暗示了基础知识,恕我直言,它并没有回答这个问题。
猜你喜欢
  • 2013-03-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-23
  • 1970-01-01
  • 1970-01-01
  • 2017-07-26
相关资源
最近更新 更多