在公司不同服务器上"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!

make -f dc_debug.mak 提示错误"/usr/bin/ld:can not find -l***"解决办法的更多相关文章

  1. /usr/bin/ld: cannot find -lxxx 的解决办法

    /usr/bin/ld: cannot find -lxxx 的解决办法 在软件编译过程中,经常会碰到类似这样的编译错误: /usr/bin/ld: cannot find -lhdf5 这表示找不到 ...

  2. Linux下库文件的设置 (/usr/bin/ld: cannot find -lxxx 的解决办法)

    在软件编译过程中,经常会碰到类似这样的编译错误: /usr/bin/ld: cannot find -lhdf5 这表示找不到库文件 libhdf5.so,若是其它库文件,则是 cannot find ...

  3. 【转】链接任意目录下库文件(解决错误“/usr/bin/ld: cannot find -lxxx”

    netbeans构建项目也出现了同样的问题.猜测是netbeans内部就用的是-l 这种编译方式,所以需要把***.a手动改为lib***.a 原文地址:链接任意目录下库文件(解决错误“/usr/bi ...

  4. android编译错误--/usr/bin/ld: cannot find -lz

    编译时出现/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.4.5/../../../libz.so when se ...

  5. /usr/bin/ld: cannot find -lxxx 问题 解决方法总结

    最近在做毕设的收尾工作,很多程序都要部署到linux下来运行,遇到了挺多问题,昨天就集中性遇到了 在编译应用时,遇到了 /usr/bin/ld: cannot find -lxxx 这种情况是系统找不 ...

  6. Beyond Compare 4 提示错误“这个授权密钥已被吊销”的解决办法

    错误提示: 这个授权密钥已被吊销. 解决方法: 删除以下目录中的所有文件即可. C:\Users\Administrator\AppData\Roaming\Scooter Software\Beyo ...

  7. 编译错误 ----- /usr/bin/ld: cannot find -lc

    yum install glibc-static glib-static是Gcc链接时使用到的库.

  8. 系统中提示未找到/usr/bin/ld: cannot find -lxxx错误的通用解决方法

    在linux环境编译应用程式或lib的source code时常常会出现如下的错误讯息: 代码如下: /usr/bin/ld: cannot find -lxxx 这些讯息会随着编译不同类型的sour ...

  9. Centos中Qt编译问题(/usr/bin/ld: 找不到 -lpulse-mainloop-glib,/usr/bin/ld: 找不到 -lpulse...)

    Linux下QT编写一个与视频播放的程序,出现/usr/bin/ld: 找不到 -lpulse-mainloop-glib,/usr/bin/ld: 找不到 -lpulse 解决办法: 首先find ...

随机推荐

  1. Angularjs入门学习一 简介

    本系列文章是从头开始学习angularjs,下文中用ng表示angularjs,要知道从以为根深蒂固的jquery开发者转变开发思想,确实需要一段时间,下面介绍以下 angularjs,我也是参考网上 ...

  2. javaScript中的数组迭代方法

    ECMAScript5为数组定义了5个迭代方法. 每个方法都接收两个参数:要在每一项上运行的函数  和  (可选的)运行该函数的作用域对象. 传入这些方法中的函数会接收三个参数:数组项的值,该项在数组 ...

  3. android ListView_Tiger

    xml设计 <?xml version="1.0"?> -<LinearLayout tools:context=".MainActivity" ...

  4. 济南学习 Day 1 T2 am

    死亡[问题描述]现在有M个位置可以打 sif,有N +1个人在排队等着打 sif.现在告诉你 个人每个人需要多长的时间打 sif,问你第N +1个人什么时候才能打 sif. (前N个人必须按照顺序来) ...

  5. UIScrollView,UIPageControl

    #import <UIKit/UIKit.h> @interface ViewController : UIViewController<UIScrollViewDelegate&g ...

  6. LVS-HA

    heartbeat 监听在udp的694的端口   LRM:本地资源管理器 CRM:资源管理器 RA:资源代理(脚本) heartbeat legacy : heartbeat 传统类型的资源代理,通 ...

  7. 把url后面的.html去掉

    $url = "http://haichuang1997.bmlink.com/supply/dc_355472.html";echo rtrim($url, '.html');

  8. 【Qt】Qt之自定义界面(QMessageBox)【转】

    简述 通过前几节的自定义窗体的学习,我们可以很容易的写出一套属于自己风格的界面框架,通用于各种窗体,比如:QWidget.QDialog.QMainWindow. 大多数窗体的实现都是采用控件堆积来完 ...

  9. js正则学习及一些正则集合

    正则中文版详细说明请看中文版w3cschool-----http://www.w3school.com.cn/jsref/jsref_obj_regexp.asp微软正则表达式语言-快速参考:http ...

  10. HTML表单样式

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"% ...