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!
上一篇:HDU 1061 Rightmost Digit解决问题的方法


下一篇:Java面试题整理二(侧重SSH框架)