下载 xbmc,下载地址为 http://ftp.sunet.se/pub/multimedia/xbmc/releases/source/xbmc-12.1.tar.gz
执行 ./configure :
configure: Using Python 2.6
checking for main in -lGL... yes
checking for main in -lGLEW... no
configure: error: Could not find a required library. Please see the README for your platform.
[root@localhost xbmc-12.1]#
到sourceforge.net上下载并安装glew库
http://nchc.dl.sourceforge.net/project/glew/glew/1.9.0/glew-1.9.0.tgz
checking for main in -lGL... yes
checking for main in -lGLEW... yes
checking for main in -lGLU... yes
checking for mysql_config... /usr/bin/mysql_config
checking ass/ass.h usability... no
checking ass/ass.h presence... no
checking for ass/ass.h... no
configure: error: Could not find a required library. Please see the README for your platform.
[root@localhost xbmc-12.1]#
安装 libass库时, 又提示如下错误
checking for FREETYPE... yes
checking for FRIBIDI... configure: error: Package requirements (fribidi >= 0.19.0) were not met:
No package 'fribidi' found
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.
Alternatively, you may set the environment variables FRIBIDI_CFLAGS
and FRIBIDI_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
安装完毕 fribidi库之后, 再安装libass,
还是提示上面的错误, 原因是 PKG_CONFIG_PATH环境变量配置不正确,
像下面这样配置一下即可。
[root@localhost libass-0.10.1]# find / -name pkgconfig
/usr/lib/pkgconfig
/usr/local/lib/pkgconfig
/usr/lib64/pkgconfig
/usr/share/pkgconfig
[root@localhost libass-0.10.1]#
[root@localhost libass-0.10.1]# find / -name pkg-config
/usr/bin/pkg-config
[root@localhost libass-0.10.1]#
[root@localhost libass-0.10.1]# export PKG_CONFIG=/usr/bin/pkg-config
[root@localhost libass-0.10.1]# export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/lib/pkgconfig
checking for ass/ass.h... yes
checking mpeg2dec/mpeg2.h usability... no
checking mpeg2dec/mpeg2.h presence... no
checking for mpeg2dec/mpeg2.h... no
configure: error: Could not find a required library. Please see the README for your platform.
下载安装好后继续。
checking mpeg2dec/mpeg2.h usability... yes
checking mpeg2dec/mpeg2.h presence... yes
checking for mpeg2dec/mpeg2.h... yes
checking for mpeg2dec/mpeg2convert.h... yes
checking mad.h usability... no
checking mad.h presence... no
checking for mad.h... no
configure: error: Could not find a required library. Please see the README for your platform.
那就下载安装吧,但是 make libmad的时候出如下错误
cc1: error: unrecognized command line option "-fforce-mem"
make[2]: *** [version.lo] 错误 1
make[2]: Leaving directory `/root/libmad-0.15.1b'
make[1]: *** [all-recursive] 错误 1
make[1]: Leaving directory `/root/libmad-0.15.1b'
make: *** [all] 错误 2
"-fforce-mem"
将其删除, 然后再make即可。
checking samplerate.h usability... no
checking samplerate.h presence... no
checking for samplerate.h... no
configure: error: Could not find a required library. Please see the README for your platform.
[root@localhost xbmc-12.1]#
该错误是缺少 libsamplerate-devel 库,
执行 yum install libsamplerate-devel 进行安装。
checking ogg/ogg.h usability... no
checking ogg/ogg.h presence... no
checking for ogg/ogg.h... no
configure: error: Could not find a required library. Please see the README for your platform.
[root@localhost xbmc-12.1]#
执行 yum install libogg-devel 进行安装。
checking vorbis/vorbisfile.h usability... no
checking vorbis/vorbisfile.h presence... no
checking for vorbis/vorbisfile.h... no
configure: error: Could not find a required library. Please see the README for your platform.
checking libmodplug/modplug.h usability... no
checking libmodplug/modplug.h presence... no
checking for libmodplug/modplug.h... no
configure: error: Could not find a required library. Please see the README for your platform.
下载安装吧。
checking FLAC/stream_decoder.h usability... no
checking FLAC/stream_decoder.h presence... no
checking for FLAC/stream_decoder.h... no
configure: error: Could not find a required library. Please see the README for your platform.
该错误是缺少 FLAC库, 下载
http://xiph.org/flac/download.html
http://sourceforge.net/projects/flac/files/flac-src/
真实的下载地址为 http://ncu.dl.sourceforge.net/project/flac/flac-src/flac-1.2.1-src/flac-1.2.1.tar.gz
下载后安装了继续。
checking for main in -lbz2... yes
checking for main in -ljpeg... yes
checking for main in -ltiff... no
configure: error: Could not find a required library. Please see the README for your platform.
缺少 libtiff 库,找下载地址,
下载地址为 http://download.osgeo.org/libtiff/
我选择的版本为 http://download.osgeo.org/libtiff/tiff-4.0.3.tar.gz
下载安装后继续。
checking for main in -lpthread... yes
checking for main in -llzo2... no
configure: error: Could not find a required library. Please see the README for your platform.
缺少 liblzo2 这个库。
下载地址为 http://www.oberhumer.com/opensource/lzo/download/
下载的文件为 http://www.oberhumer.com/opensource/lzo/download/lzo-2.06.tar.gz
安装后再继续。
checking for hci_devid in -lbluetooth... no
Could not find suitable version of libbluetooth
checking for main in -lyajl... no
configure: error: Could not find a required library. Please see the README for your platform.
下载 blue, 官网地址为 http://www.bluez.org/download/
文件下载地址为 https://www.kernel.org/pub/linux/bluetooth/bluez-4.101.tar.xz
不要下载最新的 bluez-5.2.tar.xz
解压命令为
xz -d bluez-4.101.tar.xz
tar -xvf bluez-4.101.tar.xz
然后执行 ./configure 安装 bluez 包
碰到错误为 :
checking for DBUS... no
configure: error: D-Bus >= 1.4 is required
下载地址为 http://dbus.freedesktop.org/releases/dbus/
checking for XML_ParserCreate_MM in -lexpat... no
configure: error: Could not find expat.h, check config.log for failed attempts
[root@localhost dbus-1.6.4]# yum install expat-devel
下来安装 bluez 又碰到了
checking for GLIB... no
configure: error: GLib >= 2.28 is required
如果碰到这个错误, 就要小心了, GLib库不能乱更新, 否则会把系统相关的很多进程搞得无法运行。
看来还是 bluez的版本太高了, 重新下载 更老的版本吧。
下载地址为 :http://bluez.sf.net/download/bluez-libs-3.36.tar.gz
这个老的版本安装很顺利。
下来在解决下面这个错误 :
checking for main in -lyajl... no
执行命令 yum install yajl-devel 即可解决该错误。
然后继续。
checking for main in -ltinyxml... no
configure: error: Could not find a required library. Please see the README for your platform.
下载地址为 :http://nchc.dl.sourceforge.net/project/tinyxml/tinyxml/2.6.2/tinyxml_2_6_2.zip
这个库的编译我就不说了,因为没有 Makefile文件,所以自己编译个静态库, 复制到 /usr/lib/目录即可。
checking for CDIO... no
configure: error: Could not find a required library. Please see the README for your platform.
要疯了, 没玩没了的依赖库啊。上帝啊。
缺少 libcdio库, 该库的官网为 http://www.gnu.org/software/libcdio/
下载地址为 https://savannah.gnu.org/git/?group=libcdio
得通过git下载,命令如下:
git clone git://git.savannah.gnu.org/libcdio.git
然后 cd libcdio
然后 ./autogen.sh
然后 make
然后 make install
即可成功。
checking for TAGLIB... no
configure: error: Could not find a required library. Please see the README for your platform.
文件下载地址为 : http://taglib.github.io/releases/taglib-1.8.tar.gz
该 taglib 库要用CMake来编译,CMake的编译命令如下所示 :
cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_RELEASE_TYPE=Release
make
make install
cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_RELEASE_TYPE=Release
出现了如下错误:
-- Ensure you cppunit installed version is at least 1.12.0
CMake Error at CMakeLists.txt:98 (file):
file does not recognize sub-command COPY
下载了最新版本2.8的CMAKE后, 执行
./configure --prefix=/usr
gmake
gmake install
cmake --version
显示如下:
[root@localhost cmake-2.8.10.2]# cmake --version
cmake version 2.8.10.2
安装cmake成功。
下来进入到 taglib-1.8目录执行编译命令, 很顺利,成功了。
下来继续吧。
checking for TAGLIB... yes
checking for LIBBLURAY... no
checking for main in -ldl... yes
checking for main in -lresolv... yes
checking for main in -ljasper... no
configure: error: Could not find a required library. Please see the README for your platform.
缺少库 libjasper, 执行命令
yum install libjasper-devel
进行安装, 然后继续。
checking for SDL... no
configure: error: Could not find a required library. Please see the README for your platform.
yum install SDL-devel
进行安装, 然后再继续。
这次又碰到了下面的错误:
checking for main in -lSDL_image... no
configure: error: Could not find a required library. Please see the README for your platform.
缺少 库 SDL_image, 找到下载地址 http://www.libsdl.org/projects/SDL_image/
下载地址为 http://www.libsdl.org/projects/SDL_image/release/SDL_image-1.2.12.tar.gz
下载后安装。然后再继续。
checking for main in -lmicrohttpd... no
configure: error: Could not find a required library. Please see the README for your platform.
然后再下载 libmicrohttpd 这个库进行安装。
configure: == ProjectM enabled. ==
checking for sftp_tell64 in -lssh... no
configure: error: == Could not find libssh. ==
缺少 libssh库, 官网为 http://www.libssh.org/get-it/
文件下载地址为 :http://www.libssh.org/files/0.5/
下载 http://www.libssh.org/files/0.5/libssh-0.5.3.tar.gz 文件
要用CMake进行安装。
执行cmake相关命令, 碰到如下错误:
[root@localhost build]# cmake /root/libssh-0.5.3/ -DCMAKE_INSTALL_PREFIX=/usr
CMake Error at cmake/Modules/MacroEnsureOutOfSourceBuild.cmake:13 (message):
libssh requires an out of source build. Please create a separate build
directory and run 'cmake /path/to/libssh [options]' there.
Call Stack (most recent call first):
CMakeLists.txt:40 (macro_ensure_out_of_source_build)
CMake Error at cmake/Modules/MacroEnsureOutOfSourceBuild.cmake:14 (message):
Remove the file CMakeCache.txt in /root/libssh-0.5.3 first.
Call Stack (most recent call first):
CMakeLists.txt:40 (macro_ensure_out_of_source_build)
-- Configuring incomplete, errors occurred!
执行命令
[root@localhost libssh-0.5.3]# vi CMakeLists.txt
修改CMakeLists.txt文件中的下面的部分, 直接注释掉即可。
# disallow in-source build
include(MacroEnsureOutOfSourceBuild)
#macro_ensure_out_of_source_build("${PROJECT_NAME} requires an out of source build. Please create a separate build directory and run 'cmake /path/to/${PROJECT_NAME} [options]' there.")
然后继续。
checking librtmp/log.h usability... no
checking librtmp/log.h presence... no
checking for librtmp/log.h... no
configure: == Could not find libRTMP. RTMP support disabled. ==
checking librtmp/amf.h usability... no
checking librtmp/amf.h presence... no
checking for librtmp/amf.h... no
checking librtmp/rtmp.h usability... no
checking librtmp/rtmp.h presence... no
checking for librtmp/rtmp.h... no
checking for main in -lsmbclient... no
configure: error: Could not find a required library. Please see the README for your platform.
缺少 librtmp 库 和 samba 库。
网上找不到 librtmp库, 费了一番功夫, 找到一个方法:
Install Howto
Create the repository config file /etc/yum.repos.d/linuxtech.repo:
[linuxtech]
name=LinuxTECH
baseurl=http://pkgrepo.linuxtech.net/el6/release/
enabled=1
gpgcheck=1
gpgkey=http://pkgrepo.linuxtech.net/el6/release/RPM-GPG-KEY-LinuxTECH.NET
Install librtmp rpm package:
# yum install librtmp
上面配置好以后, 执行
yum install librtmp-devel 即可OK了。
samba库倒是好安装, 问题是生成不了 libsmbclient.a, 生成的都是动态库so文件。郁闷了好久找不到办法。
yum install libsmbclient-devel 也成功了, 就是没有 libsmbclient.a 这个静态库文件。
最后下载了 libsmbclient-devel.rpm 包, 然后执行命令
rpm2cpio *.rpm | cpio -div 解压出 rpm 包里的文件, 复制 libsmbclient.a 文件 到 /usr/lib64/目录
这关是过了, 但是不知道以后会不会有问题。继续吧。
checking vdpau/vdpau.h usability... no
checking vdpau/vdpau.h presence... no
checking for vdpau/vdpau.h... no
== Could not find libvdpau. VDPAU support disabled. ==
checking for main in -lva... no
== Could not find libva. VAAPI support disabled. ==
checking libcrystalhd/libcrystalhd_if.h usability... no
checking libcrystalhd/libcrystalhd_if.h presence... no
checking for libcrystalhd/libcrystalhd_if.h... no
== Could not find libcrystalhd. CrystalHD support disabled. ==
checking for libcrystalhd soname... /usr/bin/ld: mode elf_x86_64
./configure: line 24965: [: too many arguments
no
configure: WARNING: Unable to determine soname of libcrystalhd library
configure: WARNING: libcrystalhd support disabled
configure: == VDADecoder support manually disabled. ==
configure: == VTBDecoder support manually disabled. ==
configure: == OpenMax support manually disabled. ==
checking yajl/yajl_version.h usability... no
checking yajl/yajl_version.h presence... no
checking for yajl/yajl_version.h... no
checking for gawk... yes
checking for cmake... yes
checking for gperf... no
configure: error: Could not find a required program. Please see the README for your platform.
yum install libcrystalhd-devel
yum install gperf
到此, ./configure 命令总是是成功了, 不知道编译的时候还会出啥幺蛾子。
DVDStateSerializer.cpp: In static member function ‘static bool CDVDStateSerializer::DVDToXMLState(std::string&, const dvd_state_t*)’:
DVDStateSerializer.cpp:207: 错误:no match 为‘operator<<’在‘stream << xmlDoc’中
这个错误的原因是 :
tinyxml.h 头文件中没有定义 TIXML_USE_STL
添加
#define TIXML_USE_STL 1
即可make成功。
/root/xbmc/