zoukankan      html  css  js  c++  java
  • make -f dc_debug.mak 提示错误"/usr/bin/ld:can not find -l***"解决办法

       在公司不同服务器上"make -f ***"程序的时候,有的服务器可以编译通过,有的却提示"/usr/bin/ld:can not find -l***"的错误,
    在网上查找总是同样的博文,什么什么“php安装提示iconv”错误之类的,没有一个针对性,下面是我遇到的问题和解决办法:
    遇到问题:
    /usr/bin/ld : can not find -liconv
    解决办法:
    因为公司服务器上提交的代码都是别人提交的,你要在服务器上编译就不能去修改人家的代码和makefile文件,否则你要是修改了的话,人家
    在自己的机器上就无法编译通过,从而导致各种不好。你能做的就是在编译(即make -f ***)的时候自己想办法,这样才是我想要的办法。网上
    一堆都是修改Makefile文件,连接之类的,那些都是需要管理员权限的,公司不是每个人都有管理员权限的!
    首先,我的解决办法就是查看代码工程里别人写的Maikefile文件,找到 LIBS = ... 那一行,看看工程在编译的时候需要什么库文件,然
    后,退出来编译程序的时候在 make -f *** 后面加上 LIBS='***' 其中 *** 就是你刚才查看的,工程需要的库文件,然后再加上之前编译
    报错时提示缺少的库。
    举例:
    比如我编译的时候
    #make -f dc_debug.mak
    程序报错,提示“/usr/bin/ld: can not find -liconv”,这是因为缺少iconv库,那么我就要查看Makefile文件(或者.mk .mak 之类的)
    找到( LIBS= xml2 pthread z )这一行,然后退出重新编译的时候在这行后面加上 iconv 就行了。
    如下:
    #make -f dc_debug.mak LIBS='xml2 pthread z iconv'
    这样的话问题就解决了。
    OK!
  • 相关阅读:
    Day 25 网络基础2
    Day 25 网络基础
    Day 24 定时任务
    Day 23 系统服务之救援模式
    Day4 总结
    Day 22 进程管理2之系统的平均负载
    【Distributed】分布式Session一致性问题
    【Distributed】分布式系统中遇到的问题
    【Redis】分布式Session
    【Zookeeper】应用场景概述
  • 原文地址:https://www.cnblogs.com/foundwant/p/3181632.html
Copyright © 2011-2022 走看看