LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1171|回复: 5

从源代码安装xmms2(并Share一下用源代码安装软件出错时一种简单处理思路)

[复制链接]
发表于 2005-8-10 13:32:00 | 显示全部楼层 |阅读模式
测试环境:rhel 3
用户身份需求:root
主页:http://wiki.xmms2.xmms.se/index.php/Main_Page

依赖关系,一般系统中都有安装python,glib。并请安装tcl-devel包
    * Python (http://www.python.org/) (>=2.2.1)
    * Scons (http://www.scons.org/) (>= 0.96.90)
    * GLib (http://www.gtk.org/) (>= 2.2.0)
    * MAD (http://www.underbit.com/products/mad/)
    * SQLite (http://www.sqlite.org) (3.2.x)

scons-0.96.90.tar.gz
libmad-0.15.1b.tar.gz
sqlite-3.2.2.tar.gz
xmms2-0.1DR2.tar.gz

1.安装scons
tar zxvf scons-0.96.90.tar.gz
cd scons-0.96.90
python setup.py install

2. 安装libmad 此为mp1、2、3,acc code。
tar zxvf libmad-0.15.1b.tar.gz
cd libmad-0.15.1b
./configure
make
make install

3.安装sqlite-3.2.2.tar.gz 注意这里路径要是/usr
tar zxvf sqlite-3.2.2.tar.gz
mkdir bld
cd bld
../sqlite-3.2.2/configure --prefix=/usr
make
make install

4.安装xmms2
tar zxvf xmms2-0.1DR2.tar.gz
cd xmms2-0.1DR2
scons install

发现报错,这个应该是软件的Bug,显示如下错误
src/xmms/sample.c:360:23: converter.c: No such file or directory
src/xmms/sample.c:63: warning: `xmms_sample_conv_get' used but never defined
scons: *** [src/xmms/sample.o] Error 1
scons: building terminated because of errors.

我们来找出错误
cat src/xmms/sample.c  |grep converter.c
#include "converter.c"

这可以看出,这个找不到的文件应该是编译过程中生成的(注意那个"引号",而不是"<>"
grep -r "converter.c" *

输出如下:
doc/tools/Doxyfile-graph:EXCLUDE                = src/xmms/converter.c \
doc/tools/Doxyfile-internal:EXCLUDE                = src/xmms/converter.c \
doc/tools/Doxyfile-internal-graph:EXCLUDE                = src/xmms/converter.c \
Doxyfile:EXCLUDE                = src/xmms/converter.c \
SConstruct:b = Builder(action = python_executable + ' src/xmms/generate-converter.py > src/xmms/converter.c')
SConstruct:base_env.Depends('#src/xmms/converter.c', 'src/xmms/generate-converter.py')
SConstruct:base_env.SourceCode('src/xmms/converter.c', b)
src/xmms/sample.c:#include "converter.c"

可以看出是由generate-converter.py这个程序生成,我们手动生成即可
python src/xmms/generate-converter.py > src/xmms/converter.c

然后再运行安装程序完成安装
scons install
发表于 2005-8-10 14:01:42 | 显示全部楼层
e...
sqlite都成hwaci的旗舰产品了...
回复 支持 反对

使用道具 举报

发表于 2005-8-10 14:05:56 | 显示全部楼层
这个是简单的了...
一般的错误都要对源码动刀动枪的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-8-11 01:17:08 | 显示全部楼层

这个是很简单

当然,我题目也说得很明了了,很多编译出错的程序中有好大一类就是这样一个情况,
并非作者程序错误。

    作者可能在编写Makefile文件时的小小失误所造成的(不过我相信作者的C语言水平应该
要比楼上的要好,在常用软件当中,现在真正要修改源代码的很少,好多都是些简单的参数
调整,如:apache修改连接线程数,新版Vsftpd修改认证方式等等),如没有充分考虑各
平台下的shell环境差异。再举个例子:Solaris(Sparc)中的awk默认用的是nawk,linux
中用的是gawk,在Solaris中编译php时可能因为gawk没有安装而导致中间的脚本生成的
某些文件不存在(作者可能屏蔽掉了其中的标准错误输出),而导致编译失败。编译过程中
因为不同系统中的shell环境差异导致中间生成文件丢失,这是编译失败的非常常见的原因之
一。可能我没说清楚,让楼上的觉得我是小题大作,或许真是如此,亦或者可能楼上的确实
很厉害吧,但是不见的每个人都会和楼上一样很有经验处理Unix下面软件安装的问题。

    如果我们看,学东西能够抓住其本质,抓住问题的根源,这就我们解决问题做事举一反
三的本钱,有时看问题不能目光短浅,光看单独的某个点上的技术问题,要能看到面,楼上
的兄弟,我说的这么浅显的道理应该明白吧。

    太晚写这个,迷迷糊糊的,其中错误在所难免,希望大家多多包涵。:)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-8-11 01:29:42 | 显示全部楼层

这个是很简单

当然,我题目也说得很明了了,很多编译出错的程序中有好大一类就是这样一个情况,
并非作者程序错误。

    作者可能在编写Makefile文件时的小小失误所造成的(不过我相信作者的C语言水平应该
要比楼上的要好,在常用软件当中,现在真正要修改源代码的很少,好多都是些简单的参数
调整,如:apache修改连接线程数,新版Vsftpd修改认证方式等等),如没有充分考虑各
平台下的shell环境差异。再举个例子:Solaris(Sparc)中的awk默认用的是nawk,linux
中用的是gawk,在Solaris中编译php时可能因为gawk没有安装而导致中间的脚本生成的
某些文件不存在(作者可能屏蔽掉了其中的标准错误输出),而导致编译失败。编译过程中
因为不同系统中的shell环境差异导致中间生成文件丢失,这是编译失败的非常常见的原因之
一。可能我没说清楚,让楼上的觉得我是小题大作,或许真是如此,亦或者可能楼上的确实
很厉害吧,但是不见的每个人都会和楼上一样很有经验处理Unix下面软件安装的问题。

    如果我们看,学东西能够抓住其本质,抓住问题的根源,这就我们解决问题做事举一反
三的本钱,有时看问题不能目光短浅,光看单独的某个点上的技术问题,要能看到面,楼上
的兄弟,我说的这么浅显的道理应该明白吧。

    太晚写这个,迷迷糊糊的,其中错误在所难免,希望大家多多包涵。:)
回复 支持 反对

使用道具 举报

发表于 2005-8-11 08:24:45 | 显示全部楼层
一般的出错
都是原来的代码在新版GCC、新版Gtk...中出错
如果是GCC的问题,有时还真难办...
如果是新版Gtk或其他软件库,把DISABLE_DEPRECATED关掉就好,但是有时还得改代码
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表