centos5.8 64bit 编译vlc 笔记

转载请注明出处:http://blog.csdn.net/guijiewan/article/details/8259115


uname -a
Linux  2.6.18-308.13.1.el5 #1 SMP Tue Aug 21 17:10:18 EDT 2012 x86_64 x86_64 x86_64 GNU/Linux

cat /etc/issue
CentOS release 5.8 (Final)


 1, 下载vlc 源码

2,cd contrib; mkdir linux; ../bootstrap; make

3,  configure.ac:13: error: Autoconf version 2.64 or higher is required
     下载autoconf 2.64, ./configure; make && make install;

4, vlc2.0.4:
          cd fribidi && rm -f configure && ./bootstrap
Usable autoreconf found, running
aclocal:configure.ac:40: warning: macro `AM_SILENT_RULES' not found in library
configure.ac:51: error: possibly undefined macro: AM_SILENT_RULES
      If this token and others are legitimate, please use m4_pattern_allow.
      See the Autoconf documentation.
autoreconf: /usr/local/bin/autoconf failed with exit status: 1
make: *** [.fribidi] Error 1
这种错误是由于libtool版本不对引起了, 下面编译vlc2.0.3,解决掉libtool问题后, 这个问题也没有了。

    vlc2.0.3:
fribidi-run.c: In function '_fribidi__new_run__internal__':
fribidi-run.c:70: error: 'PAGE_SIZE' undeclared (first use in this function)
fribidi-run.c:70: error: (Each undeclared identifier is reported only once
fribidi-run.c:70: error: for each function it appears in.)


打开lib/common.h 
在PAGE_SIZE出现之前,添加:   
#ifndef PAGE_SIZE
#define PAGE_SIZE getpagesize()
#endif
http://wenku.baidu.com/view/9ac1f108bb68a98271fefa45.htm

5, vlc2.0.3: libass
checking for FONTCONFIG... configure: error: Package requirements (fontconfig >= 2.4.2) were not met:
Requested 'fontconfig >= 2.4.2' but version of Fontconfig is 2.4.1

手动下载2.7.1 
./configure; make ; make install ;
问题依旧。(应该只有64bit才会有这问题)
原因在于centos64位的 PKG_CONFIG_PATH默认 /usr / lib64/pkgconfig/fontconfig.pc
fontconfig  的fontconfig.pc  默认安装在/usr/local/lib/pkgconfig/fontconfig.pc和/usr/lib/pkgconfig/fontconfig.pc下
[root@jx usr]# find -name fontconfig.pc
./local/lib/pkgconfig/fontconfig.pc
./lib64/pkgconfig/fontconfig.pc
./lib/pkgconfig/fontconfig.pc

解决 mv ./lib64/pkgconfig/fontconfig.pc ./lib64/pkgconfig/fontconfig.pc_bak
重新编译vlc, vlc 检测不到fontconfig.pc,自动到网上下载, 编译在vlc ./contrib/linux 目录下

或者 export  PKG_CONFIG_PATH=/usr/ lib/pkgconfig: $ PKG_CONFIG_PATH
(未验证)
关于 PKG_CONFIG:
http://kangzai.blog.51cto.com/280080/84298 

启示: 类似问题可以类似解决


5, vlc2.0.3: bluray

[root@jx linux]# make
cd bluray && ./bootstrap
autoreconf: Entering directory `.'
autoreconf: configure.ac: not using Gettext
autoreconf: running: aclocal --force -I m4
autoreconf: configure.ac: tracing
autoreconf: running: libtoolize --copy --force
You should update your `aclocal.m4' by running aclocal.
Putting files in AC_CONFIG_AUX_DIR, `build-aux'.
autoreconf: running: /usr/local/bin/autoconf --force
autoreconf: running: /usr/local/bin/autoheader --force
autoreconf: running: automake --add-missing --copy --force-missing
autoreconf: Leaving directory `.'
cd bluray && CC="gcc" CXX="g++" LD="ld" AR="ar" RANLIB="ranlib" STRIP="strip" PATH="/root/wgj/vlc-2.0.3_bak/contrib/x86_64-redhat-linux/bin:/root/wgj/vlc-2.0.3_bak/extras/tools/build/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/java/jdk1.6.0_22/bin:/root/bin" CPPFLAGS=" -I/root/wgj/vlc-2.0.3_bak/contrib/x86_64-redhat-linux/include" CFLAGS=" -I/root/wgj/vlc-2.0.3_bak/contrib/x86_64-redhat-linux/include" CXXFLAGS=" -I/root/wgj/vlc-2.0.3_bak/contrib/x86_64-redhat-linux/include" LDFLAGS=" -L/root/wgj/vlc-2.0.3_bak/contrib/x86_64-redhat-linux/lib" ./configure --disable-examples --disable-debug --disable-libxml2 --prefix="/root/wgj/vlc-2.0.3_bak/contrib/x86_64-redhat-linux" --build="x86_64-redhat-linux" --host="x86_64-redhat-linux" --target="x86_64-redhat-linux" --program-prefix="" --enable-static --disable-shared --disable-dependency-tracking --with-pic
checking build system type... x86_64-redhat-linux-gnu
checking host system type... x86_64-redhat-linux-gnu
checking target system type... x86_64-redhat-linux-gnu
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking how to create a ustar tar archive... gnutar
checking for x86_64-redhat-linux-gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for style of include used by make... GNU
checking dependency style of gcc... none
checking how to print strings... printf
checking for a sed that does not truncate output... /bin/sed
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for fgrep... /bin/grep -F
checking for ld used by gcc... ld
checking if the linker (ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 98304
checking whether the shell understands some XSI constructs... yes
checking whether the shell understands "+="... yes
checking how to convert x86_64-redhat-linux-gnu file names to x86_64-redhat-linux-gnu format... func_convert_file_noop
checking how to convert x86_64-redhat-linux-gnu file names to toolchain format... func_convert_file_noop
checking for ld option to reload object files... -r
checking for x86_64-redhat-linux-objdump... no
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for x86_64-redhat-linux-dlltool... no
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for x86_64-redhat-linux-ar... ar
checking for archiver @FILE support... @
checking for x86_64-redhat-linux-strip... strip
checking for x86_64-redhat-linux-ranlib... ranlib
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for x86_64-redhat-linux-mt... no
checking for mt... no
checking if : is a manifest tool... no
checking how to run the C preprocessor... gcc -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (ld -m elf_x86_64) supports shared libraries... yes
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... no
checking whether to build static libraries... yes
checking return type of signal handlers... void
checking stdarg.h usability... yes
checking stdarg.h presence... yes
checking for stdarg.h... yes
checking for sys/types.h... (cached) yes
checking dirent.h usability... yes
checking dirent.h presence... yes
checking for dirent.h... yes
checking errno.h usability... yes
checking errno.h presence... yes
checking for errno.h... yes
checking libgen.h usability... yes
checking libgen.h presence... yes
checking for libgen.h... yes
checking malloc.h usability... yes
checking malloc.h presence... yes
checking for malloc.h... yes
checking for stdlib.h... (cached) yes
checking mntent.h usability... yes
checking mntent.h presence... yes
checking for mntent.h... yes
checking linux/cdrom.h usability... yes
checking linux/cdrom.h presence... yes
checking for linux/cdrom.h... yes
checking for inttypes.h... (cached) yes
checking for strings.h... (cached) yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking time.h usability... yes
checking time.h presence... yes
checking for time.h... yes
checking for mntent.h... (cached) yes
checking pthread.h usability... yes
checking pthread.h presence... yes
checking for pthread.h... yes
checking for dirent.h that defines DIR... yes
checking for library containing opendir... none required
checking for struct dirent.d_type... yes
checking for special C compiler options needed for large files... no
checking for _FILE_OFFSET_BITS value needed for large files... no
checking for snprintf... yes
checking for pthread_create in -lpthread... yes
checking for dlopen... no
checking for dlopen in -ldl... yes
checking for pkg-config... yes
Checking if compiler supports -Wall... yes
Checking if compiler supports -Wdisabled-optimization... yes
Checking if compiler supports -Wpointer-arith... yes
Checking if compiler supports -Wredundant-decls... yes
Checking if compiler supports -Wcast-qual... yes
Checking if compiler supports -Wwrite-strings... yes
Checking if compiler supports -Wtype-limits... no
Checking if compiler supports -Wundef... yes
Checking if compiler supports -Wextra... yes
Checking if compiler supports -Winline... yes
Checking if compiler supports -O3... yes
Checking if compiler supports -fomit-frame-pointer... yes
checking for x86_64-redhat-linux-doxygen... no
checking for doxygen... /usr/bin/doxygen
checking for x86_64-redhat-linux-perl... no
checking for perl... /usr/bin/perl
checking for x86_64-redhat-linux-dot... no
checking for dot... no
configure: WARNING: dot not found - will not generate graphics for doxygen documentation
checking for x86_64-redhat-linux-latex... no
checking for latex... no
configure: WARNING: latex not found - will not generate doxygen PostScript documentation
checking for x86_64-redhat-linux-makeindex... no
checking for makeindex... no
checking for x86_64-redhat-linux-dvips... no
checking for dvips... no
checking for x86_64-redhat-linux-egrep... no
checking for egrep... /bin/egrep
checking for x86_64-redhat-linux-pdflatex... no
checking for pdflatex... no
configure: WARNING: pdflatex not found - will not generate doxygen PDF documentation
checking for x86_64-redhat-linux-makeindex... no
checking for makeindex... no
checking for x86_64-redhat-linux-egrep... /bin/egrep
configure: creating ./config.status
config.status: creating Makefile
config.status: creating src/Makefile
config.status: creating src/examples/Makefile
config.status: creating src/libbluray.pc
config.status: creating src/libbluray/bluray-version.h
config.status: creating config.h
config.status: config.h is unchanged
config.status: executing depfiles commands
config.status: executing libtool commands
  Summary:
  --------
  BD-J support:        no
  Metadata support:    no
  Build examples:      no
cd bluray && make install
make[1]: Entering directory `/root/wgj/vlc-2.0.3_bak/contrib/linux/bluray'
Making install in src
make[2]: Entering directory `/root/wgj/vlc-2.0.3_bak/contrib/linux/bluray/src'
Making install in .
make[3]: Entering directory `/root/wgj/vlc-2.0.3_bak/contrib/linux/bluray/src'
/bin/sh ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I..   -I/root/wgj/vlc-2.0.3_bak/contrib/x86_64-redhat-linux/include -std=c99 -D_ISOC99_SOURCE -D_POSIX_C_SOURCE=200809L -D_REENTRANT -Wall -Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wcast-qual -Wwrite-strings -Wundef -Wextra -Winline -O3 -fomit-frame-pointer  -I.. -Ifile -Ilibbluray/bdnav    -c -o bluray.lo `test -f 'libbluray/bluray.c' || echo './'`libbluray/bluray.c
../libtool: line 851: X--tag=CC: command not found
../libtool: line 884: libtool: ignoring unknown tag : command not found
../libtool: line 851: X--mode=compile: command not found
../libtool: line 1017: *** Warning: inferring the mode of operation is deprecated.: command not found
../libtool: line 1018: *** Future versions of Libtool will require --mode=MODE be specified.: command not found
../libtool: line 1161: Xgcc: command not found
../libtool: line 1161: X-DHAVE_CONFIG_H: command not found
../libtool: line 1161: X-I.: command not found
../libtool: line 1161: X-I.: command not found
../libtool: line 1161: X-I..: command not found
../libtool: line 1161: X-I/root/wgj/vlc-2.0.3_bak/contrib/x86_64-redhat-linux/include: No such file or directory
../libtool: line 1161: X-std=c99: command not found
../libtool: line 1161: X-D_ISOC99_SOURCE: command not found
../libtool: line 1161: X-D_POSIX_C_SOURCE=200809L: command not found
../libtool: line 1161: X-D_REENTRANT: command not found
../libtool: line 1161: X-Wall: command not found
../libtool: line 1161: X-Wdisabled-optimization: command not found
../libtool: line 1161: X-Wpointer-arith: command not found
../libtool: line 1161: X-Wredundant-decls: command not found
../libtool: line 1161: X-Wcast-qual: command not found
../libtool: line 1161: X-Wwrite-strings: command not found
../libtool: line 1161: X-Wundef: command not found
../libtool: line 1161: X-Wextra: command not found
../libtool: line 1161: X-Winline: command not found
../libtool: line 1161: X-O3: command not found
../libtool: line 1161: X-fomit-frame-pointer: command not found
../libtool: line 1161: X-I..: command not found
../libtool: line 1161: X-Ifile: command not found
../libtool: line 1161: X-Ilibbluray/bdnav: No such file or directory
../libtool: line 1161: X-c: command not found
../libtool: line 1213: Xbluray.lo: command not found
../libtool: line 1218: libtool: compile: cannot determine name of library object from `': command not found
make[3]: *** [bluray.lo] Error 1
make[3]: Leaving directory `/root/wgj/vlc-2.0.3_bak/contrib/linux/bluray/src'
make[2]: *** [install-recursive] Error 1
make[2]: Leaving directory `/root/wgj/vlc-2.0.3_bak/contrib/linux/bluray/src'
make[1]: *** [install-recursive] Error 1
make[1]: Leaving directory `/root/wgj/vlc-2.0.3_bak/contrib/linux/bluray'
make: *** [.bluray] Error 2

更新libtool:
wget  http://mirrors.ustc.edu.cn/gnu/libtool/libtool-2.2.6b.tar.gz
之所以是2.2.6b, 是由于以前遇到有一个库,只能装2.2.6b才不报错。(哪个库?忘了)

6, vlc2.0.3: libcddb-1.3.2
mkdir -p -- /root/wgj/vlc-2.0.3_bak/contrib/x86_64-redhat-linux/share/aclocal && cd cddb && autoreconf -fiv -I/root/wgj/vlc-2.0.3_bak/contrib/x86_64-redhat-linux/share/aclocal
autoreconf: Entering directory `.'
autoreconf: running: autopoint --force
Can't exec "autopoint": No such file or directory at /usr/local/share/autoconf/Autom4te/FileUtils.pm line 347.
autoreconf: failed to run autopoint: No such file or directory
autoreconf: autopoint is needed because this package uses Gettext
make: *** [.cddb] Error 1

Added the "gettext-devel" package. This package is needed for autopoint.
sudo yum -y install  gettext-devel
http://wiki.xbmc.org/index.php?title=How-to:Compile_XBMC_for_Linux_on_Fedora_Red_Hat_Enterprise_Linux_CentOS 
启示:参考下面, 可以看到, 可以安装很多库的 比如 libmad-devel, libass-devel, libvorbis
sudo yum -y install SDL* glew glew-devel libmad-devel tre tre-devel libogg libogg-devel libvorbis libvorbis-devel boost \
boost-devel bzip2-devel bzip2-libs fribidi* lzo lzo-devel mysql-libs mysql-devel jasper jasper-devel faac faac-devel \
enca enca-devel hal hal-devel hal-libs cmake gperf nasm libXmu-devel fontconfig-devel freetype-devel libXinerama-devel \
pcre-devel gcc-c++ sqlite-devel curl-devel mysql-devel libcdio-devel libmms-devel faad2-devel flac-devel libsmbclient-devel \
libXtst-devel libsamplerate-devel libtiff-devel pulseaudio-libs-devel avahi-devel wavpack-devel libmpeg2-devel libtool \
libmicrohttpd-devel libmodplug-devel redhat-lsb expat-devel gettext-devel python-devel libass-devel bluez-libs-devel \
libssh-devel yajl-devel tinyxml-devel libcap-devel afpfs-ng-devel


7, vlc2.0.3: cddb

make[2]: Entering directory `/root/wgj/vlc-2.0.3_bak/contrib/linux/cddb/lib'
/bin/sh ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../include -I../include  -I/root/wgj/vlc-2.0.3_bak/contrib/x86_64-redhat-linux/include  -I/root/wgj/vlc-2.0.3_bak/contrib/x86_64-redhat-linux/include -D_BSD_SOCKLEN_T_=int -DWIN32_LEAN_AND_MEAN  -Wall -Wchar-subscripts -Wmissing-prototypes -Wmissing-declarations -Wunused -Wpointer-arith -Wwrite-strings -Wnested-externs -Wno-sign-compare  -c -o cddb_track.lo cddb_track.c
../libtool: line 466: CDPATH: command not found
../libtool: line 1144: func_opt_split: command not found
libtool: Version mismatch error.  This is libtool 2.2.6b, but the
libtool: definition of this LT_INIT comes from an older release.
libtool: You should recreate aclocal.m4 with macros from libtool 2.2.6b
libtool: and run autoconf again.
make[2]: *** [cddb_track.lo] Error 63
make[2]: Leaving directory `/root/wgj/vlc-2.0.3_bak/contrib/linux/cddb/lib'
make[1]: *** [install-recursive] Error 1
make[1]: Leaving directory `/root/wgj/vlc-2.0.3_bak/contrib/linux/cddb'
make: *** [.cddb] Error 2

确认已经安装libtool 2.2.6b, 但是执行 libtool --version 得到:
[root@jx cddb]# libtool --version
ltmain.sh (GNU libtool) 1.5.22 (1.1220.2.365 2005/12/18 22:14:06)

说明新的安装不起作用, 

[root@jxusr]# find -name "libtool*"
./share/automake-1.4/libtool.am
./share/automake-1.7/am/libtool.am
./share/info/libtool.info.gz
./share/libtool
./share/automake-1.9/am/libtool.am
./share/automake-1.6/am/libtool.am
./share/automake-1.5/am/libtool.am
./share/aclocal/libtool.m4
./share/doc/libtool-1.5.22
./local/src/nagios-plugins-1.4.13/libtool
./local/src/httpd-2.2.22/srclib/apr/libtool
./local/src/httpd-2.2.22/srclib/apr/build/libtool.m4
./local/src/httpd-2.2.22/srclib/apr-util/xml/expat/conftools/libtool.m4
./local/share/info/libtool.info-2
./local/share/info/libtool.info
./local/share/info/libtool.info-1
./local/share/libtool
./local/share/aclocal/libtool.m4
./local/apache2/build/libtool
./local/bin/libtool
./local/bin/libtoolize
./bin/libtool
./bin/libtoolize

mv ./bin/libtool ./bin/libtool_bak
mv ./bin/libtoolize ./bin/libtoolize_bak

打开/etc/profile, 添加export PATH=$PATH:$/usr/local/bin
执行. /etc/profile
验证:
libtool --version
ltmain.sh (GNU libtool) 2.2.6b
Written by Gordon Matzigkeit , 1996

问题依旧。
http://os.51cto.com/art/201001/177866.htm 
查询libtool rpm 包:
rpm -qal | grep libtool
显示依然 libtool 1.5.22 
删除libtool
 rpm -e libtool

重新安装libtool 2.2.6b后
[root@jx cddb]# make
/bin/sh ./config.status --recheck
running CONFIG_SHELL=/bin/sh /bin/sh ./configure --no-create --no-recursion
./configure: line 2143: syntax error near unexpected token `config.h'
./configure: line 2143: `AM_CONFIG_HEADER(config.h)'
make: *** [config.status] Error 2
[root@jx cddb]# ./configure
./configure: line 2143: syntax error near unexpected token `config.h'
./configure: line 2143: `AM_CONFIG_HEADER(config.h)'
[root@jx cddb]# /bin/sh ./config.status --recheck
running CONFIG_SHELL=/bin/sh /bin/sh ./configure --no-create --no-recursion
running CONFIG_SHELL=/bin/sh /bin/sh ./configure --no-create --no-recursion
./configure: line 2143: syntax error near unexpected token `config.h'
./configure: line 2143: `AM_CONFIG_HEADER(config.h)'
make: *** [config.status] Error 2

根本的原因在于centos 执行目录是/usr, 而libtool 默认安装目录了/usr/local
./configure --prefix=/usr; make && make install
解决。


8, vlc2.0.3: openjpeg-1.5.0
configure.ac:29: require Automake 1.11, but have 1.9.6

下载
./configure --prefix=/usr;make && make install
注意,默认--prefix=/usr/local 

9, vlc2.0.3: libvpx-v1.0.0
Configuring for target 'x86_64-linux-gcc'
  enabling x86_64
  enabling runtime_cpu_detect
  enabling mmx
  enabling sse
  enabling sse2
  enabling sse3
  enabling ssse3
  enabling sse4_1
Neither yasm nor nasm have been found

Configuration failed. This could reflect a misconfiguration of your
toolchains, improper options selected, or another problem. If you
don't see any useful error messages above, the next step is to look
at the configure error log file (config.err) to determine what
configure was trying to do when it died.
make: *** [.vpx] Error 1

 编源码了, 省点劲。
下载:http://apt.sw.be/redhat/el5/en/x86_64/rpmforge/RPMS/yasm-devel-1.1.0-1.el5.rf.x86_64.rpm
 安装: sudo yum -y install yasm-devel-1.1.0-1.el5.rf.x86_64.rpm

[root@jx linux]# make
rm -f -R gecko    && tar xvJf ../../contrib/tarballs/gecko-svn.tar.xz
tar: invalid option -- J
Try `tar --help' or `tar --usage' for more information.
make: *** [gecko] Error 64

 tar --version
tar (GNU tar) 1.15.1
GNU tar自版本1.22起使用这一软件透明支持xz文件格式

wget  http://ftp.gnu.org/gnu/tar/tar-1.26.tar.gz
 sudo ./configure --prefix=/usr FORCE_UNSAFE_CONFIGURE=1
make && make install;

tar --version
tar (GNU tar) 1.15.1
没成功!

rpm -qal | grep tar
发现在/bin/tar

mv /bin/tar /bin/tar_bak
. /etc/profile
搞定

9, vlc2.0.3: game-music-emu
cd game-music-emu && CC="gcc" CXX="g++" LD="ld" AR="ar" RANLIB="ranlib" STRIP="strip" PATH="/root/wgj/vlc-2.0.3_bak/contrib/x86_64-redhat-linux/bin:/root/wgj/vlc-2.0.3_bak/extras/tools/build/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/java/jdk1.6.0_22/bin:usr/local/bin:/root/bin:/usr/java/jdk1.6.0_22/bin:usr/local/bin" CPPFLAGS=" -I/root/wgj/vlc-2.0.3_bak/contrib/x86_64-redhat-linux/include -fPIC" CFLAGS=" -I/root/wgj/vlc-2.0.3_bak/contrib/x86_64-redhat-linux/include -fPIC" CXXFLAGS=" -I/root/wgj/vlc-2.0.3_bak/contrib/x86_64-redhat-linux/include -fPIC" LDFLAGS=" -L/root/wgj/vlc-2.0.3_bak/contrib/x86_64-redhat-linux/lib" cmake . -DCMAKE_TOOLCHAIN_FILE=/root/wgj/vlc-2.0.3_bak/contrib/linux/toolchain.cmake -DCMAKE_INSTALL_PREFIX=/root/wgj/vlc-2.0.3_bak/contrib/x86_64-redhat-linux .
/bin/sh: cmake: command not found
make: *** [.gme] Error 127

wget http://www.cmake.org/files/v2.8/cmake-2.8.10.2.tar.gz

由于系统原来没有cmake,因此将cmake安装在默认目录下:
./configure && make && make install

10, vlc2.0.3: gnutls
cd gnutls && CC="gcc" CXX="g++" LD="ld" AR="ar" RANLIB="ranlib" STRIP="strip" PATH="/root/wgj/vlc-2.0.3_bak/contrib/x86_64-redhat-linux/bin:/root/wgj/vlc-2.0.3_bak/extras/tools/build/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/java/jdk1.6.0_22/bin:usr/local/bin:/root/bin:/usr/java/jdk1.6.0_22/bin:usr/local/bin" CPPFLAGS=" -I/root/wgj/vlc-2.0.3_bak/contrib/x86_64-redhat-linux/include" CFLAGS=" -I/root/wgj/vlc-2.0.3_bak/contrib/x86_64-redhat-linux/include" CXXFLAGS=" -I/root/wgj/vlc-2.0.3_bak/contrib/x86_64-redhat-linux/include" LDFLAGS=" -L/root/wgj/vlc-2.0.3_bak/contrib/x86_64-redhat-linux/lib" ./configure --disable-gtk-doc --disable-cxx --disable-srp-authentication --disable-psk-authentication-FIXME --disable-anon-authentication --disable-camellia --disable-openpgp-authentication --disable-session-ticket --disable-openssl-compatibility --disable-guile --prefix="/root/wgj/vlc-2.0.3_bak/contrib/x86_64-redhat-linux" --build="x86_64-redhat-linux" --host="x86_64-redhat-linux" --target="x86_64-redhat-linux" --program-prefix="" --enable-static --disable-shared --disable-dependency-tracking --with-pic
checking for libnettle... no

configure: error:
  ***
  *** Libnettle 2.1 was not found.
 
make: *** [.gnutls] Error 1

wget  http://download.opensuse.org/source/distribution/12.1/repo/oss/suse/src/libnettle-2.4-5.1.2.src.rpm
解压rpm包: rpm2cpio libnettle-2.4-5.1.2.src.rpm | cpio -div
tar xvf nettle-2.4.tar.gz 
./configure && make && make install

或者?:
wget http://download.opensuse.org/distribution/12.1/repo/oss/suse/x86_64/libnettle-devel-2.4-5.1.2.x86_64.rpm

到处, 在contrib/linux 下编译库, 大功告成。
回到vlc目录下
./configure
系统libc不符合vlc要求,升级libc
checking for buggy GNU/libc versions... found
configure: error: Buggy GNU/libc (version 2.5 - 2.7) present. VLC would crash; there is no viable
work-around for this. Check with your distribution vendor on how to update the
glibc run-time. Alternatively, build with --disable-nls.

查看libc版本:
[root@jx vlc-2.0.3_bak]# /lib/libc.so.6
GNU C Library stable release version 2.5, by Roland McGrath et al.
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
Compiled by GNU CC version 4.1.2 20080704 (Red Hat 4.1.2-52).
Compiled on a Linux 2.6.9 system on 2012-08-27.
Available extensions:
        The C stubs add-on version 2.1.2.
        crypt add-on version 2.1 by Michael Glad and others
        GNU Libidn by Simon Josefsson
        GNU libio by Per Bothner
        NIS(YP)/NIS+ NSS modules 0.19 by Thorsten Kukuk
        Native POSIX Threads Library by Ulrich Drepper et al
        BIND-8.2.3-T5B
        RT using linux kernel aio
Thread-local storage support included.
For bug reporting instructions, please see:
.

#gcc -v
Target: x86_64-redhat-linux
gcc version 4.1.2 20080704 (Red Hat 4.1.2-52)

太高版本的libc编译要求编译工具较新
configure: error:
*** These critical programs are missing or too old: as ld gcc
*** Check the INSTALL file for required versions.

所以就选v2.8吧
wget http://ftp.gnu.org/gnu/libc/glibc-2.8.tar.bz2

解压之后
mkdir glibc; cd glibc
../glibc-2.8/configure  --prefix=/usr
make -j8 && make install

成功安装到/lib64; /usr/lib64
但/lib; /usr/lib 下依然是v2.5 

据说要重启, 新的libc才会起作用;
这里不重启, 重新vlc 下 ./configure; 通过了, 说明vlc 到lib64下面去找libc
 

10, vlc2.0.3: XCB
checking for XCB... configure: error: Package requirements (xcb >= 1.6) were not met:
No package 'xcb' found

如果不要xcb 直接./configure --disable-xcb; 这里disable-xcb, 因为编译xcb的话, 首先要更新python;

终于出现:

libvlc configuration
--------------------
version               : 2.0.3
system                : linux
architecture          : x86_64 mmx sse sse2
optimizations         : yes
vlc aliases           : cvlc rvlc

To build vlc and its plugins, type `make', or `./compile' if you like nice colors.

11, vlc2.0.3: vlc.desktop
vlc终于configure 完成。
接着make
  GEN    vlc.desktop
tmp-vlc.desktop: error: required key "Encoding" not found
tmp-vlc.desktop: warning: file contains key "Keywords", this key is currently reserved for use within KDE, and should in the future KDE releases be prefixed by "X-"
make[2]: *** [vlc.desktop] Error 1
make[2]: Leaving directory `/root/wgj/vlc-2.0.3_bak/share'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/root/wgj/vlc-2.0.3_bak'
make: *** [all] Error 2

题外话:
The  linuxtech-testing  repo has 2.0.0-2.el6 and  ATrpms  has 2.0.1-2.el6
有大量编译好的rpm包

cd share;
vi Makefile.am 
Makefile.in
注释掉下面这句:
#appdata_DATA = vlc.desktop


12, vlc2.0.3: libz.a
/usr/bin/ld: /root/wgj/vlc-2.0.3_bak/contrib/x86_64-redhat-linux/lib/libz.a(crc32.o): relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC
/root/wgj/vlc-2.0.3_bak/contrib/x86_64-redhat-linux/lib/libz.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
make[7]: *** [libzip_plugin.la] Error 1

-fpic
           Generate position-independent code (PIC) suitable for use in a
           shared library, if supported for the target machine.  Such code
           accesses all constant addresses through a global offset table
           (GOT).  The dynamic loader resolves the GOT entries when the pro-
           gram starts (the dynamic loader is not part of GCC; it is part of
           the operating system).  If the GOT size for the linked executable
           exceeds a machine-specific maximum size, you get an error message
           from the linker indicating that -fpic does not work; in that case,
           recompile with -fPIC instead.  (These maximums are 8k on the SPARC
           and 32k on the m68k and RS/6000.  The 386 has no such limit.)

           Position-independent code requires special support, and therefore
           works only on certain machines.  For the 386, GCC supports PIC for
           System V but not for the Sun 386i.  Code generated for the IBM
           RS/6000 is always position-independent.

       -fPIC
           If supported for the target machine, emit position-independent
           code, suitable for dynamic linking and avoiding any limit on the
           size of the global offset table.  This option makes a difference on
           the m68k and the SPARC.

           Position-independent code requires special support, and therefore
           works only on certain machines.
将contrib/src/zlib/rule.mak下面这句的--static去掉
cd $< && $(HOSTVARS) ./configure --prefix=$(PREFIX) --static 
即变成:
cd $< && $(HOSTVARS) ./configure --prefix=$(PREFIX) 


13, vlc2.0.3: v4l2
In file included from v4l2/video.c:40:
v4l2/v4l2.h:33:3: warning: #warning Please update Video4Linux2 headers!
v4l2/video.c:140: error: ‘V4L2_CID_POWER_LINE_FREQUENCY_DISABLED’ undeclared here (not in a function)
v4l2/video.c:141: error: ‘V4L2_CID_POWER_LINE_FREQUENCY_50HZ’ undeclared here (not in a function)
v4l2/video.c:142: error: ‘V4L2_CID_POWER_LINE_FREQUENCY_60HZ’ undeclared here (not in a function)
v4l2/video.c:166: error: ‘V4L2_COLORFX_NONE’ undeclared here (not in a function)
v4l2/video.c:166: error: initializer element is not constant
v4l2/video.c:166: error: (near initialization for ‘colorfx_vlc[1]’)
v4l2/video.c:167: error: ‘V4L2_COLORFX_BW’ undeclared here (not in a function)
v4l2/video.c:167: error: initializer element is not constant
v4l2/video.c:167: error: (near initialization for ‘colorfx_vlc[2]’)
v4l2/video.c:167: error: ‘V4L2_COLORFX_SEPIA’ undeclared here (not in a function)
v4l2/video.c:167: error: initializer element is not constant
v4l2/video.c:167: error: (near initialization for ‘colorfx_vlc[3]’)
v4l2/video.c: In function ‘InitVideo’:
v4l2/video.c:930: warning: format ‘%lx’ expects type ‘long unsigned int’, but argument 5 has type ‘v4l2_std_id’
v4l2/video.c:933: warning: format ‘%lx’ expects type ‘long unsigned int’, but argument 5 has type ‘v4l2_std_id’
v4l2/video.c:1300: error: ‘V4L2_FIELD_INTERLACED_TB’ undeclared (first use in this function)
v4l2/video.c:1300: error: (Each undeclared identifier is reported only once
v4l2/video.c:1300: error: for each function it appears in.)
v4l2/video.c:1304: error: ‘V4L2_FIELD_INTERLACED_BT’ undeclared (first use in this function)
make[5]: *** [libv4l2_plugin_la-video.lo] Error 1

由于我们这里不需要v4l2 所以去掉v4l2:
./configure --disable-xcb --disable-v4l2



14,vlc2.0.3: dtv
dtv/linux.c:52:3: error: #error Linux DVB kernel headers version 2.6.28 or later required.
dtv/linux.c: In function ‘dvb_parse_modulation’:
dtv/linux.c:108: error: ‘APSK_16’ undeclared (first use in this function)
dtv/linux.c:108: error: (Each undeclared identifier is reported only once
dtv/linux.c:108: error: for each function it appears in.)
dtv/linux.c:108: warning: missing initializer
dtv/linux.c:108: warning: (near initialization for ‘mods[1].linux_’)
dtv/linux.c:112: error: ‘APSK_32’ undeclared (first use in this function)
dtv/linux.c:112: warning: missing initializer
dtv/linux.c:112: warning: (near initialization for ‘mods[5].linux_’)
dtv/linux.c:115: error: ‘PSK_8’ undeclared (first use in this function)
dtv/linux.c:115: warning: missing initializer
dtv/linux.c:115: warning: (near initialization for ‘mods[8].linux_’)
dtv/linux.c:117: error: ‘DQPSK’ undeclared (first use in this function)
dtv/linux.c:117: warning: missing initializer
dtv/linux.c:117: warning: (near initialization for ‘mods[10].linux_’)
dtv/linux.c: In function ‘dvb_parse_fec’:
dtv/linux.c:134: error: ‘FEC_3_5’ undeclared (first use in this function)
dtv/linux.c:134: error: initializer element is not constant
dtv/linux.c:134: error: (near initialization for ‘rates[4].linux_’)
dtv/linux.c:134: warning: missing initializer
dtv/linux.c:134: warning: (near initialization for ‘rates[4].linux_’)
dtv/linux.c:140: error: ‘FEC_9_10’ undeclared (first use in this function)
dtv/linux.c:140: error: initializer element is not constant
dtv/linux.c:140: error: (near initialization for ‘rates[10].linux_’)
dtv/linux.c:140: warning: missing initializer
dtv/linux.c:140: warning: (near initialization for ‘rates[10].linux_’)
dtv/linux.c: In function ‘dvb_open’:
dtv/linux.c:241: error: ‘DMX_OUT_TSDEMUX_TAP’ undeclared (first use in this function)
dtv/linux.c:241: error: incompatible types in assignment
dtv/linux.c:241: warning: statement with no effect
dtv/linux.c: In function ‘dvb_enum_systems’:
dtv/linux.c:497: error: ‘FE_CAN_2G_MODULATION’ undeclared (first use in this function)
dtv/linux.c:497: error: invalid operands to binary &
dtv/linux.c: In function ‘dvb_vset_props’:
dtv/linux.c:539: error: array type has incomplete element type
dtv/linux.c:539: warning: initialization from incompatible pointer type
dtv/linux.c:540: error: variable ‘props’ has initializer but incomplete type
dtv/linux.c:540: error: unknown field ‘num’ specified in initializer
dtv/linux.c:540: warning: excess elements in struct initializer
dtv/linux.c:540: warning: (near initialization for ‘props’)
dtv/linux.c:540: error: unknown field ‘props’ specified in initializer
dtv/linux.c:540: warning: excess elements in struct initializer
dtv/linux.c:540: warning: (near initialization for ‘props’)
dtv/linux.c:540: error: storage size of ‘props’ isn’t known
dtv/linux.c:542: warning: passing argument 1 of ‘memset’ discards qualifiers from pointer target type
dtv/linux.c:542: warning: passing argument 3 of ‘memset’ makes integer from pointer without a cast
dtv/linux.c:546: error: dereferencing pointer to incomplete type
dtv/linux.c:546: error: request for member ‘cmd’ in something not a structure or union
dtv/linux.c:546: warning: statement with no effect
dtv/linux.c:547: error: dereferencing pointer to incomplete type
dtv/linux.c:547: error: request for member ‘u’ in something not a structure or union
dtv/linux.c:547: error: request for member ‘data’ in something not a structure or union
dtv/linux.c:547: warning: statement with no effect
dtv/linux.c:548: error: dereferencing pointer to incomplete type
dtv/linux.c:548: error: request for member ‘cmd’ in something not a structure or union
dtv/linux.c:548: error: dereferencing pointer to incomplete type
dtv/linux.c:548: error: request for member ‘u’ in something not a structure or union
dtv/linux.c:548: error: request for member ‘data’ in something not a structure or union
dtv/linux.c:548: warning: format ‘%2u’ expects type ‘unsigned int’, but argument 5 has type ‘const struct dvb_int_map_t *’
dtv/linux.c:548: warning: format ‘%u’ expects type ‘unsigned int’, but argument 6 has type ‘const struct dvb_int_map_t *’
dtv/linux.c:550: error: increment of pointer to unknown structure
dtv/linux.c:550: error: arithmetic on pointer to an incomplete type
dtv/linux.c:554: error: ‘FE_SET_PROPERTY’ undeclared (first use in this function)
dtv/linux.c:554: warning: passing argument 2 of ‘ioctl’ makes integer from pointer without a cast
dtv/linux.c:540: warning: unused variable ‘props’
dtv/linux.c:539: warning: unused variable ‘buf’
dtv/linux.c: In function ‘dvb_set_inversion’:
dtv/linux.c:586: error: ‘DTV_INVERSION’ undeclared (first use in this function)
dtv/linux.c:586: warning: passing argument 2 of ‘dvb_set_prop’ makes integer from pointer without a cast
dtv/linux.c: In function ‘dvb_tune’:
dtv/linux.c:591: error: ‘DTV_TUNE’ undeclared (first use in this function)
dtv/linux.c:591: warning: passing argument 2 of ‘dvb_set_prop’ makes integer from pointer without a cast
dtv/linux.c: In function ‘dvb_set_dvbc’:
dtv/linux.c:604: error: ‘DTV_CLEAR’ undeclared (first use in this function)
dtv/linux.c:608: error: ‘DTV_DELIVERY_SYSTEM’ undeclared (first use in this function)
dtv/linux.c:608: error: ‘SYS_DVBC_ANNEX_AC’ undeclared (first use in this function)
dtv/linux.c:610: error: ‘DTV_FREQUENCY’ undeclared (first use in this function)
dtv/linux.c:610: error: ‘DTV_MODULATION’ undeclared (first use in this function)
dtv/linux.c:611: error: ‘DTV_SYMBOL_RATE’ undeclared (first use in this function)
dtv/linux.c:611: error: ‘DTV_INNER_FEC’ undeclared (first use in this function)
dtv/linux.c: In function ‘dvb_set_sec’:
dtv/linux.c:687: error: ‘DTV_TONE’ undeclared (first use in this function)
dtv/linux.c:687: error: ‘DTV_VOLTAGE’ undeclared (first use in this function)
dtv/linux.c:726: error: ‘DTV_FREQUENCY’ undeclared (first use in this function)
dtv/linux.c: In function ‘dvb_set_dvbs’:
dtv/linux.c:737: error: ‘DTV_CLEAR’ undeclared (first use in this function)
dtv/linux.c:737: error: ‘DTV_DELIVERY_SYSTEM’ undeclared (first use in this function)
dtv/linux.c:737: error: ‘SYS_DVBS’ undeclared (first use in this function)
dtv/linux.c:738: error: ‘DTV_FREQUENCY’ undeclared (first use in this function)
dtv/linux.c:738: error: ‘DTV_SYMBOL_RATE’ undeclared (first use in this function)
dtv/linux.c:739: error: ‘DTV_INNER_FEC’ undeclared (first use in this function)
dtv/linux.c: In function ‘dvb_set_dvbs2’:
dtv/linux.c:751: error: ‘PILOT_OFF’ undeclared (first use in this function)
dtv/linux.c:751: warning: assignment makes integer from pointer without a cast
dtv/linux.c:752: error: ‘PILOT_ON’ undeclared (first use in this function)
dtv/linux.c:752: warning: assignment makes integer from pointer without a cast
dtv/linux.c:753: error: ‘PILOT_AUTO’ undeclared (first use in this function)
dtv/linux.c:753: warning: assignment makes integer from pointer without a cast
dtv/linux.c:758: error: ‘ROLLOFF_20’ undeclared (first use in this function)
dtv/linux.c:758: warning: assignment makes integer from pointer without a cast
dtv/linux.c:759: error: ‘ROLLOFF_25’ undeclared (first use in this function)
dtv/linux.c:759: warning: assignment makes integer from pointer without a cast
dtv/linux.c:760: error: ‘ROLLOFF_35’ undeclared (first use in this function)
dtv/linux.c:760: warning: assignment makes integer from pointer without a cast
dtv/linux.c:761: warning: assignment makes integer from pointer without a cast
dtv/linux.c:766: error: ‘DTV_CLEAR’ undeclared (first use in this function)
dtv/linux.c:766: error: ‘DTV_DELIVERY_SYSTEM’ undeclared (first use in this function)
dtv/linux.c:766: error: ‘SYS_DVBS2’ undeclared (first use in this function)
dtv/linux.c:767: error: ‘DTV_FREQUENCY’ undeclared (first use in this function)
dtv/linux.c:767: error: ‘DTV_MODULATION’ undeclared (first use in this function)
dtv/linux.c:768: error: ‘DTV_SYMBOL_RATE’ undeclared (first use in this function)
dtv/linux.c:768: error: ‘DTV_INNER_FEC’ undeclared (first use in this function)
dtv/linux.c:769: error: ‘DTV_PILOT’ undeclared (first use in this function)
dtv/linux.c:769: error: ‘DTV_ROLLOFF’ undeclared (first use in this function)
dtv/linux.c: In function ‘dvb_set_dvbt’:
dtv/linux.c:850: error: ‘DTV_CLEAR’ undeclared (first use in this function)
dtv/linux.c:850: error: ‘DTV_DELIVERY_SYSTEM’ undeclared (first use in this function)
dtv/linux.c:850: error: ‘SYS_DVBT’ undeclared (first use in this function)
dtv/linux.c:851: error: ‘DTV_FREQUENCY’ undeclared (first use in this function)
dtv/linux.c:851: error: ‘DTV_MODULATION’ undeclared (first use in this function)
dtv/linux.c:852: error: ‘DTV_CODE_RATE_HP’ undeclared (first use in this function)
dtv/linux.c:852: error: ‘DTV_CODE_RATE_LP’ undeclared (first use in this function)
dtv/linux.c:853: error: ‘DTV_BANDWIDTH_HZ’ undeclared (first use in this function)
dtv/linux.c:854: error: ‘DTV_TRANSMISSION_MODE’ undeclared (first use in this function)
dtv/linux.c:855: error: ‘DTV_GUARD_INTERVAL’ undeclared (first use in this function)
dtv/linux.c:856: error: ‘DTV_HIERARCHY’ undeclared (first use in this function)
dtv/linux.c:878:3: warning: #warning DVB-T2 needs Linux DVB version 5.3 or later.
dtv/linux.c: In function ‘dvb_set_isdbc’:
dtv/linux.c:896: error: ‘DTV_CLEAR’ undeclared (first use in this function)
dtv/linux.c:900:3: warning: #warning ISDB-C might need Linux DVB version 5.5 or later.
dtv/linux.c:901: error: ‘DTV_DELIVERY_SYSTEM’ undeclared (first use in this function)
dtv/linux.c:901: error: ‘SYS_DVBC_ANNEX_AC’ undeclared (first use in this function)
dtv/linux.c:903: error: ‘DTV_FREQUENCY’ undeclared (first use in this function)
dtv/linux.c:903: error: ‘DTV_MODULATION’ undeclared (first use in this function)
dtv/linux.c:904: error: ‘DTV_SYMBOL_RATE’ undeclared (first use in this function)
dtv/linux.c:904: error: ‘DTV_INNER_FEC’ undeclared (first use in this function)
dtv/linux.c:920:3: warning: #warning ISDB-S needs Linux DVB version 5.1 or later.
dtv/linux.c:968:3: warning: #warning ISDB-T needs Linux DVB version 5.1 or later.
dtv/linux.c: In function ‘dvb_set_atsc’:
dtv/linux.c:984: error: ‘DTV_CLEAR’ undeclared (first use in this function)
dtv/linux.c:984: error: ‘DTV_DELIVERY_SYSTEM’ undeclared (first use in this function)
dtv/linux.c:984: error: ‘SYS_ATSC’ undeclared (first use in this function)
dtv/linux.c:985: error: ‘DTV_FREQUENCY’ undeclared (first use in this function)
dtv/linux.c:985: error: ‘DTV_MODULATION’ undeclared (first use in this function)
dtv/linux.c: In function ‘dvb_set_cqam’:
dtv/linux.c:994: error: ‘DTV_CLEAR’ undeclared (first use in this function)
dtv/linux.c:995: error: ‘DTV_DELIVERY_SYSTEM’ undeclared (first use in this function)
dtv/linux.c:995: error: ‘SYS_DVBC_ANNEX_B’ undeclared (first use in this function)
dtv/linux.c:996: error: ‘DTV_FREQUENCY’ undeclared (first use in this function)
dtv/linux.c:996: error: ‘DTV_MODULATION’ undeclared (first use in this function)
make[5]: *** [libdtv_plugin_la-linux.lo] Error 1

同上面, 去掉dtv:
./configure --disable-xcb --disable-v4l2 

找遍configure --help, 没发现有类似--disable-dtv 或 --disable-dvb的选项
打开configure发现有下面这样的test:

fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_linux_s2api" >&5
$as_echo "$ac_cv_linux_s2api" >&6; }
if test "$ac_cv_linux_s2api" = "yes"; then
  HAVE_LINUX_DVB_TRUE=
  HAVE_LINUX_DVB_FALSE='#'
else
  HAVE_LINUX_DVB_TRUE='#'
  HAVE_LINUX_DVB_FALSE=
fi

原意自动检测是否开启dvb,显然检测失败了。
在上面的代码下面加下面两行:
HAVE_LINUX_DVB_TRUE='#'
HAVE_LINUX_DVB_FALSE=

继续。

15,vlc2.0.3:  liblibass_plugin.la
  CCLD     liblibass_plugin.la
/usr/bin/ld: /root/wgj/vlc-2.0.3_bak/contrib/x86_64-redhat-linux/lib/libfontconfig.a(fccfg.o): relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC
/root/wgj/vlc-2.0.3_bak/contrib/x86_64-redhat-linux/lib/libfontconfig.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
make[5]: *** [liblibass_plugin.la] Error 1

//cd $< && $(HOSTVARS) CFLAGS="$(CFLAGS) -O3" ./configure $(HOSTCONF) --disable-enca --with-pic
暂时disable-libass
./configure --disable-xcb --disable-libass


16,vlc2.0.3:  libv4l2
  CC       libv4l2_plugin_la-video.lo
In file included from v4l2/video.c:40:
v4l2/v4l2.h:33:3: warning: #warning Please update Video4Linux2 headers!
v4l2/video.c:140: error: ‘V4L2_CID_POWER_LINE_FREQUENCY_DISABLED’ undeclared here (not in a function)
v4l2/video.c:141: error: ‘V4L2_CID_POWER_LINE_FREQUENCY_50HZ’ undeclared here (not in a function)
v4l2/video.c:142: error: ‘V4L2_CID_POWER_LINE_FREQUENCY_60HZ’ undeclared here (not in a function)
v4l2/video.c:166: error: ‘V4L2_COLORFX_NONE’ undeclared here (not in a function)
v4l2/video.c:166: error: initializer element is not constant
v4l2/video.c:166: error: (near initialization for ‘colorfx_vlc[1]’)
v4l2/video.c:167: error: ‘V4L2_COLORFX_BW’ undeclared here (not in a function)
v4l2/video.c:167: error: initializer element is not constant
v4l2/video.c:167: error: (near initialization for ‘colorfx_vlc[2]’)
v4l2/video.c:167: error: ‘V4L2_COLORFX_SEPIA’ undeclared here (not in a function)
v4l2/video.c:167: error: initializer element is not constant
v4l2/video.c:167: error: (near initialization for ‘colorfx_vlc[3]’)
v4l2/video.c: In function ‘InitVideo’:
v4l2/video.c:930: warning: format ‘%lx’ expects type ‘long unsigned int’, but argument 5 has type ‘v4l2_std_id’
v4l2/video.c:933: warning: format ‘%lx’ expects type ‘long unsigned int’, but argument 5 has type ‘v4l2_std_id’
v4l2/video.c:1300: error: ‘V4L2_FIELD_INTERLACED_TB’ undeclared (first use in this function)
v4l2/video.c:1300: error: (Each undeclared identifier is reported only once
v4l2/video.c:1300: error: for each function it appears in.)
v4l2/video.c:1304: error: ‘V4L2_FIELD_INTERLACED_BT’ undeclared (first use in this function)
make[5]: *** [libv4l2_plugin_la-video.lo] Error 1

./configure --disable-xcb --disable-libass --disable-v4l2


17,vlc2.0.3:  libdbus
make[6]: Entering directory `/root/wgj/vlc-2.0.3_bak/modules/control/dbus'
  CC       libdbus_plugin_la-dbus.lo
  CC       libdbus_plugin_la-dbus_root.lo
  CC       libdbus_plugin_la-dbus_player.lo
  CC       libdbus_plugin_la-dbus_tracklist.lo
dbus_tracklist.c:63:2: warning: #warning psz_aftertrack is not used
dbus_tracklist.c: In function ‘Tracks’:
dbus_tracklist.c:248: error: implicit declaration of function ‘dbus_message_iter_abandon_container’
make[6]: *** [libdbus_plugin_la-dbus_tracklist.lo] Error 1
make[6]: *** Waiting for unfinished jobs....
dbus.c: In function ‘Run’:
dbus.c:878: warning: ignoring return value of ‘read’, declared with attribute warn_unused_result
make[6]: Leaving directory `/root/wgj/vlc-2.0.3_bak/modules/control/dbus'
make[5]: *** [all] Error 2
make[5]: Leaving directory `/root/wgj/vlc-2.0.3_bak/modules/control/dbus'
make[4]: *** [all-recursive] Error 1
make[4]: Leaving directory `/root/wgj/vlc-2.0.3_bak/modules/control'
make[3]: *** [all] Error 2
make[3]: Leaving directory `/root/wgj/vlc-2.0.3_bak/modules/control'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/root/wgj/vlc-2.0.3_bak/modules'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/root/wgj/vlc-2.0.3_bak'
make: *** [all] Error 2

 ./configure --disable-xcb --disable-libass --disable-v4l2 --disable-dbus


18,vlc2.0.3:  libfreetype
  CCLD     libtdummy_plugin.la
In file included from /root/wgj/vlc-2.0.3_bak/contrib/x86_64-redhat-linux/include/fribidi/fribidi.h:35,
                 from freetype.c:88:
/root/wgj/vlc-2.0.3_bak/contrib/x86_64-redhat-linux/include/fribidi/fribidi-common.h:35:5: warning: "DONT_HAVE_FRIBIDI_CONFIG_H" is not defined
/root/wgj/vlc-2.0.3_bak/contrib/x86_64-redhat-linux/include/fribidi/fribidi-common.h:45:5: warning: "HAVE_FRIBIDI_CUSTOM_H" is not defined
In file included from /root/wgj/vlc-2.0.3_bak/contrib/x86_64-redhat-linux/include/fribidi/fribidi-unicode.h:38,
                 from /root/wgj/vlc-2.0.3_bak/contrib/x86_64-redhat-linux/include/fribidi/fribidi.h:37,
                 from freetype.c:88:
/root/wgj/vlc-2.0.3_bak/contrib/x86_64-redhat-linux/include/fribidi/fribidi-types.h:85:6: warning: "SIZEOF_WCHAR_T" is not defined
/root/wgj/vlc-2.0.3_bak/contrib/x86_64-redhat-linux/include/fribidi/fribidi-types.h:102:5: warning: "FRIBIDI_INT_TYPES" is not defined
In file included from /root/wgj/vlc-2.0.3_bak/contrib/x86_64-redhat-linux/include/fribidi/fribidi.h:37,
                 from freetype.c:88:
/root/wgj/vlc-2.0.3_bak/contrib/x86_64-redhat-linux/include/fribidi/fribidi-unicode.h:46:5: warning: "DONT_HAVE_FRIBIDI_UNICODE_VERSION_H" is not defined
In file included from freetype.c:88:
/root/wgj/vlc-2.0.3_bak/contrib/x86_64-redhat-linux/include/fribidi/fribidi.h:54:5: warning: "FRIBIDI_NO_DEPRECATED" is not defined
  CCLD     libfreetype_plugin.la
/usr/bin/ld: /root/wgj/vlc-2.0.3_bak/contrib/x86_64-redhat-linux/lib/libfontconfig.a(fccfg.o): relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC
/root/wgj/vlc-2.0.3_bak/contrib/x86_64-redhat-linux/lib/libfontconfig.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
make[4]: *** [libfreetype_plugin.la] Error 1
make[4]: Leaving directory `/root/wgj/vlc-2.0.3_bak/modules/text_renderer'
make[3]: *** [all] Error 2
make[3]: Leaving directory `/root/wgj/vlc-2.0.3_bak/modules/text_renderer'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/root/wgj/vlc-2.0.3_bak/modules'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/root/wgj/vlc-2.0.3_bak'
make: *** [all] Error 2


./configure --disable-xcb --disable-libass --disable-v4l2 --disable-dbus --disable-freetype
看到输出:
  GEN      cvlc
  GEN      rvlc
  GEN      vlc
到此终于编译完成。

root 运行, 貌似不行
./configure --disable-xcb --disable-libass --disable-v4l2 --disable-dbus --disable-freetype --enable-run-as-root






你可能感兴趣的:(centos,vlc)