網頁

2016年1月26日 星期二

一 VideoLAN Compile 失敗篇

進入 BIOS 在 Security/Virtualization 開啟 VT-x
download
ubuntu-14.04.3-desktop-i386.iso
ubuntu-14.04.3-desktop-amd64.iso
ubuntu-15.04-desktop-amd64.iso
使用 VMware 開啟 iso 檔
使用 Firefox 確認可以上網
點選左上角 Search your computer and online sources
填入 terminal,點選 Terminal
點選右上角的齒輪,選擇 Shutdown
sudo passwd root
先輸入自己密碼,再輸入 root 密碼
su - root

root@ubuntu:~/vlc/win32# for i in `find . -name 'Makefile*' -print`
> do
> echo $i
> grep LTLIBgme $i
> done

apt-get install git
git clone https://github.com/videolan/vlc.git vlc
或直接下載 http://www.videolan.org/vlc/download-sources.html

ftp://ftp.videolan.org/pub/videolan/contrib/

For the 64-bit version Mingw-w64
apt-get install gcc-mingw-w64-x86-64
apt-get install g++-mingw-w64-x86-64
apt-get install mingw-w64-tools
For the 32-bit version Mingw-w64
apt-get install gcc-mingw-w64-i686
apt-get install g++-mingw-w64-i686
apt-get install mingw-w64-tools

dpkg -l
apt-cache showpkg gcc-mingw-w64-i686
sudo apt-cache madison ^gcc-mingw-w64

apt-get install lua5.2
apt-get install libtool
apt-get install automake
apt-get install autoconf
apt-get install autopoint
apt-get install gettext

apt-get install pkg-config
apt-get install qt4-dev-tools
apt-get install qt5-default
apt-get install subversion
apt-get install cmake
apt-get install cvs
apt-get install wine-dev
apt-get install zip
apt-get install bzip2
apt-get install p7zip-full
apt-get install nsis
  • i686-w64-mingw32 for Windows 32-bits, using the Mingw-w64 toolchain
  • x86_64-w64-mingw32 for Windows 64-bits, using the Mingw-w64 toolchain
編輯 /usr/bin/x86_64-w64-mingw32-pkg-config 內容
編輯 /usr/bin/i686-w64-mingw32-pkg-config 內容
PKG_CONFIG_LIBDIR=/usr/lib/${triplet}/pkgconfig:/usr/${triplet}/lib/pkgconfig pkg-config $@
改成
if [ -n "$PKG_CONFIG_LIBDIR" ]; then
EXISTING=":$PKG_CONFIG_LIBDIR"
fi
PKG_CONFIG_LIBDIR=/usr/lib/${triplet}/pkgconfig:/usr/${triplet}/lib/pkgconfig${EXISTING} pkg-config $@
並注意此檔連結到 /usr/share/pkg-config-crosswrapper
cd /root/vlc
mkdir -p contrib/win32
cd contrib/win32
../bootstrap --host=i686-w64-mingw32
../bootstrap --host=x86_64-w64-mingw32
make prebuilt

rm -f ../i686-w64-mingw32/bin/moc ../i686-w64-mingw32/bin/uic ../i686-w64-mingw32/bin/rcc

cd /root/vlc
./bootstrap
mkdir win32 && cd win32

export PKG_CONFIG_LIBDIR=$HOME/vlc/contrib/i686-w64-mingw32/lib/pkgconfig
../extras/package/win32/configure.sh --host=i686-w64-mingw32 --disable-taglib --disable-x265
export PKG_CONFIG_LIBDIR=$HOME/vlc/contrib/x86_64-w64-mingw32/lib/pkgconfig
../extras/package/win32/configure.sh --host=x86_64-w64-mingw32 --disable-taglib --disable-x265 --disable-skins2

export LIBVLC_CFLAGS="-I/root/vlc/win32/_win32/include"
export LIBVLC_LIBS="-L/root/vlc/win32/lib -lvlc"
make package-win32-7zip
產生 /root/vlc/win32/vlc-3.0.0-git-win64.7z
make package-win32-zip
產生 /root/vlc/win32/vlc-3.0.0-git-win64.zip
make package-win32-exe
產生 /root/vlc/win32/vlc-3.0.0-git-win64.exe

vi /root/vlc/win32/modules/Makefile
#LTLIBgme = libgme_plugin.la
#LTLIBsid = libsid_plugin.la
#LTLIBmkv = libmkv_plugin.la
#LTLIBtaglib = libtaglib_plugin.la

vi /root/vlc/win32/modules/misc/Makefile
#LTLIBgnutls = libgnutls_plugin.la
vi /root/vlc/win32/modules/visualization/Makefile
#LTLIBprojectm = libprojectm_plugin.la
vi /root/vlc/win32/modules/stream_out/Makefile
#LTLIBstream_out_chromaprint = libstream_out_chromaprint_plugin.la

vi /root/vlc/win32/Makefile
修改
git clone git://git.videolan.org/npapi-vlc.git npapi-vlc ;
成為

出現如下錯誤
i686-w64-mingw32-strip /root/vlc-2.2.1/win32/vlc-2.2.1/NSIS/UAC.dll
make: *** No rule to make target `extras/package/win32/NSIS/nsProcess/nsProcess.c', needed by `/root/vlc-2.2.1/win32/vlc-2.2.1/NSIS/nsProcess.dll'.  Stop.
使用 vlc-3.0.0/extras/package/win32/NSIS 下的檔案 替換 vlc-2.2.1

出現如下錯誤
!include: closed: "languages/welsh.nsh"
Goto: EndLanguageCmp
!include: could not find: "languages\albanian.nsh"
Error in script "/root/vlc-2.2.1/win32/vlc-2.2.1/vlc.win32.nsi" on line 690 -- aborting creation process
make: *** [package-win32-exe] Error 1

編輯 /root/vlc-2.2.1/win32/extras/package/win32/NSIS/vlc.win32.nsi
註解掉不支持的語系


不論是用 32/64 位元的 ubuntu,其操作過程和結果似乎一致。

直接 git clone https://github.com/videolan/vlc.git vlc 下來的版本
從 make 完成產生的檔名看出,是3.0.0

vlc-3.0.0-git-win64.exe 無法安裝,即使使用以系統管理員執行
vlc-3.0.0-git-win64.zip 解壓縮後可以執行,但他不會產生圖形介面,需使用如下命令操作
vlc.exe c:\path\filename.avi
telnet 介面無法使用
vlc.exe --intf telnet --telnet-host=0.0.0.0 --telnet-port 4212 --telnet-password 1234

vlc-3.0.0-git-win32

vlc-2.2.1-win64.exe 無法安裝,即使使用以系統管理員執行
vlc-2.2.1-win64.zip 解壓縮後可以執行,但他不會產生圖形介面,需使用如下命令操作
vlc.exe c:\path\filename.avi
telnet 介面正常
vlc.exe --intf telnet --telnet-host=0.0.0.0 --telnet-port 4212 --telnet-password 1234

vlc-2.2.1-win32.exe 無法安裝,即使使用以系統管理員執行
vlc-2.2.1-win32.zip 解壓縮後可以執行,但他不會產生圖形介面,需使用如下命令操作
vlc.exe c:\path\filename.avi
telnet 介面正常
vlc.exe --intf telnet --telnet-host=0.0.0.0 --telnet-port 4212 --telnet-password 1234



建立 vlc-3.0.0-git-win32 時產生的錯誤
  CXX      demux/adaptative/playlist/libadaptative_plugin_la-Segment.lo
  CXX      demux/adaptative/playlist/libadaptative_plugin_la-SegmentBase.lo
In file included from /usr/include/c++/4.8/i686-w64-mingw32/bits/gthr-default.h:35:0,
                 from /usr/include/c++/4.8/i686-w64-mingw32/bits/gthr.h:148,
                 from /usr/include/c++/4.8/ext/atomicity.h:35,
                 from /usr/include/c++/4.8/bits/basic_string.h:39,
                 from /usr/include/c++/4.8/string:52,
                 from ../../extras/package/win32/../../../modules/demux/adaptative/playlist/Segment.h:28,
                 from ../../extras/package/win32/../../../modules/demux/adaptative/playlist/SegmentBase.h:28,
                 from ../../extras/package/win32/../../../modules/demux/adaptative/playlist/SegmentBase.cpp:25:
../../extras/package/win32/../../../include/vlc_fixups.h:165:38: error: expected unqualified-id before ‘char’
 char *strtok_r(char *, const char *, char **);
                                      ^
../../extras/package/win32/../../../include/vlc_fixups.h:165:38: error: expected ‘)’ before ‘char’
../../extras/package/win32/../../../include/vlc_fixups.h:165:38: error: expected ‘)’ before ‘char’
../../extras/package/win32/../../../include/vlc_fixups.h:165:38: error: expected initializer before ‘char’
../../extras/package/win32/../../../include/vlc_fixups.h:195:12: error: expected unqualified-id before ‘{’ token
 struct tm *gmtime_r (const time_t *, struct tm *);
            ^
../../extras/package/win32/../../../include/vlc_fixups.h:199:12: error: expected declaration before ‘}’ token
 struct tm *localtime_r (const time_t *, struct tm *);
            ^
make[5]: *** [demux/adaptative/playlist/libadaptative_plugin_la-SegmentBase.lo] Error 1
make[5]: Leaving directory `/root/vlc-3.0.0/win32/modules'
make[4]: *** [install-recursive] Error 1
make[4]: Leaving directory `/root/vlc-3.0.0/win32/modules'
make[3]: *** [install] Error 2
make[3]: Leaving directory `/root/vlc-3.0.0/win32/modules'
make[2]: *** [install-recursive] Error 1
make[2]: Leaving directory `/root/vlc-3.0.0/win32'
make[1]: *** [install] Error 2
make[1]: Leaving directory `/root/vlc-3.0.0/win32'
make: *** [package-win-install] Error 2

沒有留言:

張貼留言