VLC Android 2.0.6
大致上手法與編譯Compile VLC 1.7.5 差不多, 不過在這個版本不太需要去更改 ffmpeg/rules.mak 的內容
另外建議每次重編vlc folder的時候, 都要砍掉在重新git clone + git checkout, 不要一直git checkout,
不然會有殘留編譯檔案的問題, 容易引發不必要的錯誤
目前我這邊已知可以編譯成功的版本為
vlc android: fad7ab333f4290576f07aa22a6bb37ffed88cb0d
搭配
vlc : d002305e28d2744ad3fc63c2a42720309af182c8
vlc: 526705c394fb4f7e158d5adde83a411b3189809d
vlc: 4919758a95cf8dd6a7a3cbaa4603e54943aec90a
vlc: 3589a347e4e287ab620d01f88c2160091cc61118
vlc: 2922a6c0732f842c6df97b6d8ea67ecb64acc9d6
vlc: 6689dcb688092a909ca9f662e1a061e99f48ec7d
這些版本都可以編譯成功
錯誤情況:(Makefile:2148: recipe for target 'all' failed)
要修正 vlc/contrib/src/lua/rules.mak 的內容, 程式碼的最下方
.lua: lua
..
ifdef HAVE_WIN32
cd $< && $(RANLIB) "$(PREFIX)/lib/liblua.a"
mkdir -p -- "$(PREFIX)/lib/pkgconfig"
cp $</etc/lua.pc "$(PREFIX)/lib/pkgconfig/"
endif
...
touch $@
改為
.lua: lua
...
ifdef HAVE_WIN32
cd $< && $(RANLIB) "$(PREFIX)/lib/liblua.a"
mkdir -p -- "$(PREFIX)/lib/pkgconfig"
cp $</etc/lua.pc "$(PREFIX)/lib/pkgconfig/"
endif
ifdef HAVE_CROSS_COMPILE
cd $</src && $(MAKE) clean && $(MAKE) liblua.a && ranlib liblua.a && $(MAKE) luac
cp $</src/luac $(PREFIX)/bin
endif
...
touch $@
錯誤情況:./../modules/codec/vpx.c:271: error
將 vlc/contrib/src/vpx/rules.mak 的以下幾行移除
PKGS += vpx
ifeq ($(call need_pkg,"vpx"),)
PKGS_FOUND += vpx
endif
錯誤情況:make: *** [.fribidi] Error 77
將 vle/contrib/src/main.mak 以下幾行做修正
ifdef HAVE_ANDROID
CC := clang
CXX := clang++
endif
改為
ifdef HAVE_ANDROID
CC := $(HOST)-gcc --sysroot=$(ANDROID_NDK)/platforms/$(ANDROID_API)/arch-$(PLATFORM_SHORT_ARCH)
CXX := $(HOST)-g++ --sysroot=$(ANDROID_NDK)/platforms/$(ANDROID_API)/arch-$(PLATFORM_SHORT_ARCH)
endif