fedora编译开源软件须注意三问题

1、安装缺失的包
      按照说明进行configure和make的时候,就提示找不到库文件。这些库文件可以通过安装软件包获得,然后放到相应的目录下。利用yum install(yum remove ,yum list installed)可以直接安装所需软件包,而且能轻易的解决包依赖问题;或者可以使用rpm -ivh(rpm -e )安装下载的软件包。
 
2.下载源码自己编译缺失的包
      然而,使用yum只能安装最新版本的软件包,对于安装较低版本的软件似乎无能为力。有的时候即使rpm安装也不行,因为安装的是人家 编译好的二进制文件,很可能是由较高版本的编译器gcc编译的;而你要修改和编译的开源系统很可能适用较低版本的编译器,这样在重新编译开源系统的时候就 会出现问题。所以,这种情况最好下载所需软件包的源代码,使用你所需的编译器自己编译出所需的库文件,这次需要libxerces-c.so.27就遇到了这个问题。
 
3. gcc降级
      这次安装编译这个开源系统,首先就遇到了一个gcc降级的问题,要使用gcc3.3而fedora 15上是gcc4。于是下载并编译gcc3.3,然而编译gcc3.3又需要gcc4 ? 反正是编译不成功,好像存在一个gcc4 compat兼容包,安装这个以后,终于编译好了gcc3.3,然后在/usr/bin里让gcc链接gcc 3.3而不是gcc4。这样gcc才算好了。
过程中,还遇到一个降级的问题,make的时候报
“libstdc++.so.6: undefined reference to `_Unwind_GetIPInfo@GCC_4.2.0'”
 
    这应该也是链接的库版本太高的问题;但makefile好像又必须要so.6这个名字的文件,无奈之下,还是用软连接——将libstdc++.so.6链接到libstdc++.so.5,也就是实际上还是用gcc3.3编译出来的库。
 
libstdc++.so.5 -> libstdc++.so.6
gcc -> /opt/gcc33/bin/gcc
软连接命令 ln -s 目标文件 连接文件

转载于:https://www.cnblogs.com/fgfdh/archive/2013/05/22/3092989.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值