求助undefined reference to xxx'的问题

 我来答
匿名用户
2015-01-18
展开全部
Linux下编译程序时,经常会遇到“undefined reference to XXX” 报错,
  这里总结一些可能的原因和解决方案,给需要的朋友:
  
  说道undefined reference error,先提一下Linux gcc链接规则:
  
  链接的时候查找顺序是:
  
  -L 指定的路径, 从左到右依次查找
  由 环境变量 LIBRARY_PATH 指定的路径,使用":"分割从左到右依次查找
  /etc/ld.so.conf 指定的路径顺序
  /lib 和 /usr/lib (64位下是/lib64和/usr/lib64)
  动态库调用的查找顺序:
  
  ld的-rpath参数指定的路径, 这是写死在代码中的
  ld脚本指定的路径
  LD_LIBRARY_PATH 指定的路径
  /etc/ld.so.conf 指定的路径
  /lib和/usr/lib(64位下是/lib64和/usr/lib64)
  一般情况链接的时候我们采用-L的方式指定查找路径, 调用动态链接库的时候采用LD_LIBRARY_PATH的方式指定链接路径.
  另外注意一个问题,就是只要查找到第一个就会返回,后面的不会再查找. 比如-L./A -L./B -lx 在A中有libx.a B中有libx.a和libx.so, 这个时候会使用在./A的libx.a 而不会遵循动态库优先的原则,因为./A是先找到的,并且没有同名动态库存在
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式