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!
  • 相关阅读:
    leetcode第35题--Valid Sudoku
    leetcode 34 Search Insert Position
    leetcode第33题--Search for a Range
    leetcode第32题--Search in Rotated Sorted Array
    leetcode第31题--Longest Valid Parentheses
    leetcode第30题--Next Permutation
    leetcode第29题--Substring with Concatenation of All Words
    leetcode第28题--Divide Two Integers
    leetcode第27题--Implement strStr()
    17_7_7 JDBC存储过程 + 事务
  • 原文地址:https://www.cnblogs.com/foundwant/p/3181632.html
Copyright © 2011-2022 走看看