Chinaunix首页 | 论坛 | 博客
  • 博客访问: 81734
  • 博文数量: 10
  • 博客积分: 202
  • 博客等级: 入伍新兵
  • 技术积分: 221
  • 用 户 组: 普通用户
  • 注册时间: 2011-09-12 20:03
个人简介

一枚老菜鸟 吐槽基地:http://xuxiake1981.blog.hexun.com/

文章分类
文章存档

2020年(1)

2017年(1)

2013年(3)

2012年(5)

分类: LINUX

2012-12-16 13:49:21

下载康奈尔大学的一个开源系统,准备部署在fedora 15上。可是程序包和库文件不完整,安装说明写的也难以理解。
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 `'”
     这应该也是链接的库版本太高的问题;但makefile好像又必须要so.6这个名字的文件,无奈之下,还是用软连接——将libstdc++.so.6链接到libstdc++.so.5,也就是实际上还是用gcc3.3编译出来的库。


libstdc++.so.5 -> libstdc++.so.6


gcc -> /opt/gcc33/bin/gcc

软连接命令 ln -s 目标文件  连接文件
阅读(3376) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

2007robot2012-12-18 21:29:09

包依赖的问题是很折磨人的,好像没有比较系统,且好解决这个问题的方法。