vlc android 編譯

很多同學都在嘗試編譯 android 版本的 vlc時候發現很多編譯問題,一般都編譯好幾次都沒有編譯通過。我在這裏將我在比較常用的兩個發行平臺上編譯過程中出現的問題說明記錄一下:

先閱讀一下官方給定的教程: https://wiki.videolan.org/AndroidCompile/ ,按照教程中的內容配置環境變量NDK包。注意到目前我寫此文章的時間官方支持的 ndk 的版本是 NDKr4b 所以下載ndk的使用請使用該版本進行下載。

由於官方文檔推薦的是 ubuntu 系統進行講解說明的。但是對於我這種比較喜歡 fedora 和 opensuse rpm 安裝包的同學來說確實存在問題了,所以我這邊將在 fedora 和 opensuse 系統上安裝的過程記錄下來。

fedora 平臺

請使用最新的fedora 發行版本,目前我的fedora 系統是 fedora 27,默認你的系統不是剛剛安裝,如果是剛剛按抓給你的請執行

dnf update -y 將系統更新一下,然後安裝如下的內容:

dnf install -y automake autoconf
dnf install -y ant
dnf install -y gettext-devel
dnf install -y cmake
#like debian os install build-essential
dnf groupinstall -y "Development Tools"
dnf install -y libtool
dnf install -y flex
dnf install -y patch
dnf install -y pkg-config
dnf install -y protobuf-compiler
dnf install -y ragel
dnf install -y subversion
dnf install -y unzip
dnf install -y git gitk

然後執行 ./compile.sh -l release或者 ./compile.sh 文章中推薦的命令。這樣就會一直安裝完成。

opensuse 平臺

我使用的是 opensuse-Tumbleweed 而不是比較穩定的 Leap 版本。 主要是有些軟件例如: gettext 是有版要求的,而Leap 是使用比較老的版本。默認是需要跟行系統到比較新的版本,如果不是請先執行 zypper update -y,重啓然後執行如下的命令按抓相關的軟件:

zypper install -y automake autoconf
zypper install -y ant
zypper install -y gettext-devel
zypper install -y cmake
#like debian os: apt-get install build-essential
#like fedora os: dnf groupinstall -y "Development Tools"
zypper install -y --type pattern devel_basis
zypper install -y libtool
zypper install -y flex
zypper install -y patch
zypper install -y pkg-config
# dnf install -y protobuf-compiler
# apt-get install -y protobuf-compiler
# replace by follow in opensuse
zypper install -y libprotobuf-c-devel libprotobuf-c1 libprotobuf-lite15 protobuf-c protobuf-devel
zypper install -y ragel
zypper install -y subversion
zypper install -y unzip
zypper install -y git gitk

在編譯到一定的程度發現會報如下的錯誤:

configure: error: Cannot find native C99 compiler: please define BUILDCC.

該錯誤是沒有發現你的 gcc 編譯器,在 https://www.linuxquestions.org/questions/slackware-14/vlc-complains-that-my-compiler-is-not-native-c99-4175548893/ 上面有對應的解決方案。文章太長我將我的解決方案直接告訴大家吧:
進入 vlc 的目錄下修改 configure 文件的如下內容:

test -n "$DESKTOP_FILE_VALIDATE" || DESKTOP_FILE_VALIDATE=":"
BUILDCC=/usr/bin/gcc
for ac_prog in c11-gcc c11 c99-gcc c99
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_prog_BUILDCC+:} false; then :
$as_echo_n "(cached) " >&6
else
if test -n "$BUILDCC"; then
ac_cv_prog_BUILDCC="$BUILDCC" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
ac_cv_prog_BUILDCC="$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
done
done
IFS=$as_save_IFS

其中開始的 BUILDCC=/usr/bin/gcc 是我添加的,主要是該內容是在執行時是空,所以直接添加對應的內容。

其他的一些問題

在執行 ./compile.sh 過程中發現有些下載不了的,這個需要設置代理(所謂的×××)去操作

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章