linux下出现 undefined reference to

问题说明:

        首先要明确这个错误是什么意思,未定义的引用,这个都是由于库无法链接导致的。

解决方式:

1.一般出现这个错误,首先应该检查makefile文件中链接库的位置是否正确,确保能够正确的找到库的位置。

2.库存放路径没有错误,但是依旧报错,那应该检查库的版本,有32和64位,确保系统版本对应,使用指令-file即可查看文件的系统位数,有的嵌入式交叉编译的库,用普通的gcc也会报错。

3.一般来说正常情况下,可以正常编译生成可执行文件,但有时候会在运行时报错。

        这个时候使用指令ldd可以查看生成的可执行文件的依赖库,从而对症下药。有时候需要使用ln指令进行建立链接。可以用

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/

加上库的位置,建议加上$LD_LIBRARY_PATH:   

 注意事项:

        以上行只对当前的shell起作用,如果要修改对每个bash起作用,建议不要直接覆盖,如果直接覆盖,可能将别人链接的库直接改了位置,尤其是服务器,导致其他服务无法正常启动运行。而增加的话,是在原来的基础上增加而不是覆盖。这样就不会出错了。可以在~/.bashrc文件中添加环境。

        当然使用指令ldd可以查看生成的可执行文件的依赖库,这个时候可以对症下药。有时候需要使用ln指令进行建立链接。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值