Cross compile VLC for i.mx6q pla
2020-02-15 本文已影响0人
小桥流水啦啦啦
1、下载vlc for ubuntu:
http://www.videolan.org/vlc/#download
2、vlc使用的插件编译:
echo 'main(){}'|arm-poky-linux-gnueabi-gcc -E -v -
COMPILER_PATH=/home/imhqq/share/huqiqiao/toolchain/sysroots/x86_64-pokysdk-linux/usr/libexec/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/5.3.0/:/home/imhqq/share/huqiqiao/toolchain/sysroots/x86_64-pokysdk-linux/usr/libexec/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/5.3.0/:/home/imhqq/share/huqiqiao/toolchain/sysroots/x86_64-pokysdk-linux/usr/libexec/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/:/home/imhqq/share/huqiqiao/toolchain/sysroots/x86_64-pokysdk-linux/usr/lib/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/5.3.0/:/home/imhqq/share/huqiqiao/toolchain/sysroots/x86_64-pokysdk-linux/usr/lib/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/
LIBRARY_PATH=/home/imhqq/share/huqiqiao/toolchain/sysroots/x86_64-pokysdk-linux/usr/lib/arm-poky-linux-gnueabi/gcc/arm-poky-linux-gnueabi/5.3.0/
COLLECT_GCC_OPTIONS='-E' '-v' '-march=armv7-a' '-mtls-dialect=gnu'
root@imhqq-B360M-D3V:/home/imhqq/share/huqiqiao/vlc-2.2.1#
1.1 交叉编译工具链配置
source /home/imhqq/share/huqiqiao/toolchain/environment-setup-cortexa9hf-neon-poky-linux-gnueabi
1.2 插件库编译
cd /home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/alsa-lib-1.2.1.2
./configure --host=arm-poky-linux-gnueabi --prefix=/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/alsa --enable-shared --disable-python --with-configdir=/usr/local/share/alsa
make -j16
make install
cd /home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/x264
./configure --host=arm-poky-linux-gnueabi --prefix=/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/x264 --disable-asm --enable-shared
make
make install
cd /home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/ffmpeg-2.8.6
./configure --prefix=/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/ffmpeg --enable-shared --disable-static --disable-stripping
make -j8
make install
cd /home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/libgpg-error-1.33
./configure --prefix=/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/libgpg-error --host=arm-poky-linux-gnueabi
make -j8
make install
cd /home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/libgcrypt-1.8.5
./configure --prefix=/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/libgcrypt --enable-shared --disable-stripping --host=arm-poky-linux-gnueabi --with-libgpg-error-prefix=/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/libgpg-error
make -j8
make install
cd /home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/libmad-0.15.1b
./configure --prefix=/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/libmad --enable-shared --host=arm-poky-linux-gnueabi --build=x86_64-linux-gnu
make -j8
make install
cd /home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/libid3tag-0.15.1b
./configure --prefix=/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/libid3tag --enable-shared --host=arm-poky-linux-gnueabi --build=x86_64-linux-gnu
make -j8
make install
cd /home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/madplay-0.15.2b
./configure --prefix=/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/madplay --enable-shared --host=arm-poky-linux-gnueabi CPPFLAGS="-I/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/libid3tag/include/ -I/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/libmad/include/" LDFLAGS="-L/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/libmad/lib/ -L/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/libid3tag/lib/"
make -j8
make install
cd /home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/libogg-1.3.4
./configure --prefix=/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/libogg --host=arm-poky-linux-gnueabi --disable-static
make -j8
make install
cd /home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/libvorbis-1.3.6
./configure --prefix=/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/libvorbis --host=arm-poky-linux-gnueabi --disable-static
make -j8
make install
cd /home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/vorbis-tools-1.4.0
./configure --prefix=/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/vorbis-tools --host=arm-poky-linux-gnueabi --disable-static
make -j8
make install
cd /home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/libxml2-2.9.9
./configure --prefix=/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/libxml2 --host=arm-poky-linux-gnueabi --enable-shared --with-python=no
make -j8
make install
交叉编译readline的目的是为了后面编译lua准备的。
cd /home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/readline-6.3
./configure --prefix=/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/readline --host=arm-poky-linux-gnueabi bash_cv_wcwidth_broken=yes --disable-static
make -j8
make install
lua单板交叉编译(未成功)
cd /home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lua-5.2.4
1、修改Makefile
INSTALL_TOP=/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/lua
TO_LIB= liblua.a liblua-$V.so
2、修改src/Makefile
LUA_A= liblua.a
LUA_SO= liblua-5.1.so (新添加的行)
修改
ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T) 为
ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T) $(LUA_SO)
$(LUA_A): $(CORE_O) $(LIB_O)
$(AR) $@ $(CORE_O) $(LIB_O) # DLL needs all object files
$(RANLIB) $@
添加
$(LUA_SO): $(CORE_O) $(LIB_O)
$(CC) -o $@ -shared $? -ldl -lm
3 配置单独交叉编译lua过程中,搜索的头文件路径以及库路径。
echo $CFLAGS
-O2 -pipe -g -feliminate-unused-debug-types -fdebug-prefix-map=/data/fsl-release-bsp/build-x11/tmp/work/x86_64-nativesdk-pokysdk-linux/meta-environment-imx6qsabresd/1.0-r8=/usr/src/debug/meta-environment-imx6qsabresd/1.0-r8 -fdebug-prefix-map=/data/fsl-release-bsp/build-x11/tmp/sysroots/x86_64-linux= -fdebug-prefix-map=/data/fsl-release-bsp/build-x11/tmp/sysroots/x86_64-nativesdk-pokysdk-linux=
export CFLAGS="-O2 -pipe -g -feliminate-unused-debug-types -fdebug-prefix-map=/data/fsl-release-bsp/build-x11/tmp/work/x86_64-nativesdk-pokysdk-linux/meta-environment-imx6qsabresd/1.0-r8=/usr/src/debug/meta-environment-imx6qsabresd/1.0-r8 -fdebug-prefix-map=/data/fsl-release-bsp/build-x11/tmp/sysroots/x86_64-linux= -fdebug-prefix-map=/data/fsl-release-bsp/build-x11/tmp/sysroots/x86_64-nativesdk-pokysdk-linux=
-I/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/readline/include"
export CFLAGS="-O2 -pipe -g -I/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/libmad/include -I/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/ffmpeg/include -I/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/x264/include -I/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/alsa/include -I/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/libgcrypt/include -I/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/libgpg-error/include -I/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/libmad/include -I/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/pulseaudio/include/pulse -I/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/readline/include -ggdb3 -O0"
export LDFLAGS="-L/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/ffmpeg/lib -L/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/x264/lib -L/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/alsa/lib -L/home/imhqq/share/huqiqiao/vlc-2.2.1-plug/lib/libgcrypt/lib -L/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/libgpg-error/lib -L/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/libmad/lib -L/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/libid3tag/lib -L/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/madplay/lib -L/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/libogg/lib -L/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/libvorbis/lib -L/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/readline/lib"
4、开始单独交叉编译lua-5.2.4。
make linux -I/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/readline/include -I/home/imhqq/share/huqiqiao/toolchain/sysroots/cortexa9hf-neon-poky-linux-gnueabi/usr/include
lua-5.2.4下面的Makefile做如下修改,增加编译动态库:
# Makefile for installing Lua
# See doc/readme.html for installation and customization instructions.
# == CHANGE THE SETTINGS BELOW TO SUIT YOUR ENVIRONMENT =======================
# Your platform. See PLATS for possible values.
PLAT= linux
# Where to install. The installation starts in the src and doc directories,
# so take care if INSTALL_TOP is not an absolute path. See the local target.
# You may want to make INSTALL_LMOD and INSTALL_CMOD consistent with
# LUA_ROOT, LUA_LDIR, and LUA_CDIR in luaconf.h.
INSTALL_TOP= /home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/lua
INSTALL_BIN= $(INSTALL_TOP)/bin
INSTALL_INC= $(INSTALL_TOP)/include
INSTALL_LIB= $(INSTALL_TOP)/lib
INSTALL_MAN= $(INSTALL_TOP)/man/man1
INSTALL_LMOD= $(INSTALL_TOP)/share/lua/$V
INSTALL_CMOD= $(INSTALL_TOP)/lib/lua/$V
# How to install. If your install program does not support "-p", then
# you may have to run ranlib on the installed liblua.a.
INSTALL= install -p
INSTALL_EXEC= $(INSTALL) -m 0755
INSTALL_DATA= $(INSTALL) -m 0644
#
# If you don't have "install" you can use "cp" instead.
# INSTALL= cp -p
# INSTALL_EXEC= $(INSTALL)
# INSTALL_DATA= $(INSTALL)
# Other utilities.
MKDIR= mkdir -p
RM= rm -f
# == END OF USER SETTINGS -- NO NEED TO CHANGE ANYTHING BELOW THIS LINE =======
# Convenience platforms targets.
PLATS= aix ansi bsd freebsd generic linux macosx mingw posix solaris
# What to install.
TO_BIN= lua luac
TO_INC= lua.h luaconf.h lualib.h lauxlib.h lua.hpp
TO_LIB= liblua.a liblua-$V.so
TO_MAN= lua.1 luac.1
# Lua version and release.
V= 5.2
R= $V.4
# Targets start here.
all: $(PLAT)
$(PLATS) clean:
cd src && $(MAKE) $@
test: dummy
src/lua -v
install: dummy
cd src && $(MKDIR) $(INSTALL_BIN) $(INSTALL_INC) $(INSTALL_LIB) $(INSTALL_MAN) $(INSTALL_LMOD) $(INSTALL_CMOD)
cd src && $(INSTALL_EXEC) $(TO_BIN) $(INSTALL_BIN)
cd src && $(INSTALL_DATA) $(TO_INC) $(INSTALL_INC)
cd src && $(INSTALL_DATA) $(TO_LIB) $(INSTALL_LIB)
cd doc && $(INSTALL_DATA) $(TO_MAN) $(INSTALL_MAN)
uninstall:
cd src && cd $(INSTALL_BIN) && $(RM) $(TO_BIN)
cd src && cd $(INSTALL_INC) && $(RM) $(TO_INC)
cd src && cd $(INSTALL_LIB) && $(RM) $(TO_LIB)
cd doc && cd $(INSTALL_MAN) && $(RM) $(TO_MAN)
local:
$(MAKE) install INSTALL_TOP=../install
none:
@echo "Please do 'make PLATFORM' where PLATFORM is one of these:"
@echo " $(PLATS)"
@echo "See doc/readme.html for complete instructions."
# make may get confused with test/ and install/
dummy:
# echo config parameters
echo:
@cd src && $(MAKE) -s echo
@echo "PLAT= $(PLAT)"
@echo "V= $V"
@echo "R= $R"
@echo "TO_BIN= $(TO_BIN)"
@echo "TO_INC= $(TO_INC)"
@echo "TO_LIB= $(TO_LIB)"
@echo "TO_MAN= $(TO_MAN)"
@echo "INSTALL_TOP= $(INSTALL_TOP)"
@echo "INSTALL_BIN= $(INSTALL_BIN)"
@echo "INSTALL_INC= $(INSTALL_INC)"
@echo "INSTALL_LIB= $(INSTALL_LIB)"
@echo "INSTALL_MAN= $(INSTALL_MAN)"
@echo "INSTALL_LMOD= $(INSTALL_LMOD)"
@echo "INSTALL_CMOD= $(INSTALL_CMOD)"
@echo "INSTALL_EXEC= $(INSTALL_EXEC)"
@echo "INSTALL_DATA= $(INSTALL_DATA)"
# echo pkg-config data
pc:
@echo "version=$R"
@echo "prefix=$(INSTALL_TOP)"
@echo "libdir=$(INSTALL_LIB)"
@echo "includedir=$(INSTALL_INC)"
# list targets that do not create files (but not all makes understand .PHONY)
.PHONY: all $(PLATS) clean test install local none dummy echo pecho lecho
# (end of Makefile)
lua-5.2.4/src下面的makefile做如下修改:
# Makefile for building Lua
# See ../doc/readme.html for installation and customization instructions.
# == CHANGE THE SETTINGS BELOW TO SUIT YOUR ENVIRONMENT =======================
# Your platform. See PLATS for possible values.
PLAT= linux
CC= $(CROSS_COMPILE)gcc -march=armv7-a -mfpu=neon -mfloat-abi=hard -mcpu=cortex-a9 --sysroot=/home/imhqq/share/huqiqiao/toolchain/sysroots/cortexa9hf-neon-poky-linux-gnueabi
CFLAGS= -O2 -Wall -DLUA_COMPAT_ALL $(SYSCFLAGS) $(MYCFLAGS) -fPIC
LDFLAGS= $(SYSLDFLAGS) $(MYLDFLAGS)
LIBS= -lm $(SYSLIBS) $(MYLIBS)
AR= $(CROSS_COMPILE)ar rcu
RANLIB= $(CROSS_COMPILE)ranlib
RM= rm -f
SYSCFLAGS=
SYSLDFLAGS=
SYSLIBS=
MYCFLAGS=-I/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/readline/include/readline/include -I/home/imhqq/share/huqiqiao/nfs_new/usr/include
MYLDFLAGS=-L/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/readline/lib
MYLIBS=
MYOBJS=
# == END OF USER SETTINGS -- NO NEED TO CHANGE ANYTHING BELOW THIS LINE =======
PLATS= aix ansi bsd freebsd generic linux macosx mingw posix solaris
LUA_A= liblua.a
LUA_SO= liblua-5.2.so
CORE_O= lapi.o lcode.o lctype.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o \
lmem.o lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o \
ltm.o lundump.o lvm.o lzio.o
LIB_O= lauxlib.o lbaselib.o lbitlib.o lcorolib.o ldblib.o liolib.o \
lmathlib.o loslib.o lstrlib.o ltablib.o loadlib.o linit.o
BASE_O= $(CORE_O) $(LIB_O) $(MYOBJS)
LUA_T= lua
LUA_O= lua.o
LUAC_T= luac
LUAC_O= luac.o
ALL_O= $(BASE_O) $(LUA_O) $(LUAC_O)
ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T) $(LUA_SO)
ALL_A= $(LUA_A)
# Targets start here.
default: $(PLAT)
all: $(ALL_T)
o: $(ALL_O)
a: $(ALL_A)
$(LUA_A): $(BASE_O)
$(AR) $@ $(BASE_O)
$(RANLIB) $@
$(LUA_SO): $(CORE_O) $(LIB_O)
$(CC) -o $@ -shared $? -ldl -lm
$(LUA_T): $(LUA_O) $(LUA_A)
$(CC) -o $@ $(LDFLAGS) $(LUA_O) $(LUA_A) $(LIBS)
$(LUAC_T): $(LUAC_O) $(LUA_A)
$(CC) -o $@ $(LDFLAGS) $(LUAC_O) $(LUA_A) $(LIBS)
clean:
$(RM) $(ALL_T) $(ALL_O)
depend:
@$(CC) $(CFLAGS) -MM l*.c
echo:
@echo "PLAT= $(PLAT)"
@echo "CC= $(CC)"
@echo "CFLAGS= $(CFLAGS)"
@echo "LDFLAGS= $(SYSLDFLAGS)"
@echo "LIBS= $(LIBS)"
@echo "AR= $(AR)"
@echo "RANLIB= $(RANLIB)"
@echo "RM= $(RM)"
# Convenience targets for popular platforms
ALL= all
none:
@echo "Please do 'make PLATFORM' where PLATFORM is one of these:"
@echo " $(PLATS)"
aix:
$(MAKE) $(ALL) CC="xlc" CFLAGS="-O2 -DLUA_USE_POSIX -DLUA_USE_DLOPEN" SYSLIBS="-ldl" SYSLDFLAGS="-brtl -bexpall"
ansi:
$(MAKE) $(ALL) SYSCFLAGS="-DLUA_ANSI"
bsd:
$(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_POSIX -DLUA_USE_DLOPEN" SYSLIBS="-Wl,-E"
freebsd:
$(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_LINUX" SYSLIBS="-Wl,-E -lreadline"
generic: $(ALL)
linux:
$(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_LINUX" SYSLIBS="-Wl,-E -ldl -lreadline -lhistory -lncurses"
# linux:
# $(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_LINUX" SYSLIBS="-Wl,-E -ldl -lreadline"
macosx:
$(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_MACOSX" SYSLIBS="-lreadline" CC=cc
mingw:
$(MAKE) "LUA_A=lua52.dll" "LUA_T=lua.exe" \
"AR=$(CC) -shared -o" "RANLIB=strip --strip-unneeded" \
"SYSCFLAGS=-DLUA_BUILD_AS_DLL" "SYSLIBS=" "SYSLDFLAGS=-s" lua.exe
$(MAKE) "LUAC_T=luac.exe" luac.exe
posix:
$(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_POSIX"
solaris:
$(MAKE) $(ALL) SYSCFLAGS="-DLUA_USE_POSIX -DLUA_USE_DLOPEN" SYSLIBS="-ldl"
# list targets that do not create files (but not all makes understand .PHONY)
.PHONY: all $(PLATS) default o a clean depend echo none
# DO NOT DELETE
lapi.o: lapi.c lua.h luaconf.h lapi.h llimits.h lstate.h lobject.h ltm.h \
lzio.h lmem.h ldebug.h ldo.h lfunc.h lgc.h lstring.h ltable.h lundump.h \
lvm.h
lauxlib.o: lauxlib.c lua.h luaconf.h lauxlib.h
lbaselib.o: lbaselib.c lua.h luaconf.h lauxlib.h lualib.h
lbitlib.o: lbitlib.c lua.h luaconf.h lauxlib.h lualib.h
lcode.o: lcode.c lua.h luaconf.h lcode.h llex.h lobject.h llimits.h \
lzio.h lmem.h lopcodes.h lparser.h ldebug.h lstate.h ltm.h ldo.h lgc.h \
lstring.h ltable.h lvm.h
lcorolib.o: lcorolib.c lua.h luaconf.h lauxlib.h lualib.h
lctype.o: lctype.c lctype.h lua.h luaconf.h llimits.h
ldblib.o: ldblib.c lua.h luaconf.h lauxlib.h lualib.h
ldebug.o: ldebug.c lua.h luaconf.h lapi.h llimits.h lstate.h lobject.h \
ltm.h lzio.h lmem.h lcode.h llex.h lopcodes.h lparser.h ldebug.h ldo.h \
lfunc.h lstring.h lgc.h ltable.h lvm.h
ldo.o: ldo.c lua.h luaconf.h lapi.h llimits.h lstate.h lobject.h ltm.h \
lzio.h lmem.h ldebug.h ldo.h lfunc.h lgc.h lopcodes.h lparser.h \
lstring.h ltable.h lundump.h lvm.h
ldump.o: ldump.c lua.h luaconf.h lobject.h llimits.h lstate.h ltm.h \
lzio.h lmem.h lundump.h
lfunc.o: lfunc.c lua.h luaconf.h lfunc.h lobject.h llimits.h lgc.h \
lstate.h ltm.h lzio.h lmem.h
lgc.o: lgc.c lua.h luaconf.h ldebug.h lstate.h lobject.h llimits.h ltm.h \
lzio.h lmem.h ldo.h lfunc.h lgc.h lstring.h ltable.h
linit.o: linit.c lua.h luaconf.h lualib.h lauxlib.h
liolib.o: liolib.c lua.h luaconf.h lauxlib.h lualib.h
llex.o: llex.c lua.h luaconf.h lctype.h llimits.h ldo.h lobject.h \
lstate.h ltm.h lzio.h lmem.h llex.h lparser.h lstring.h lgc.h ltable.h
lmathlib.o: lmathlib.c lua.h luaconf.h lauxlib.h lualib.h
lmem.o: lmem.c lua.h luaconf.h ldebug.h lstate.h lobject.h llimits.h \
ltm.h lzio.h lmem.h ldo.h lgc.h
loadlib.o: loadlib.c lua.h luaconf.h lauxlib.h lualib.h
lobject.o: lobject.c lua.h luaconf.h lctype.h llimits.h ldebug.h lstate.h \
lobject.h ltm.h lzio.h lmem.h ldo.h lstring.h lgc.h lvm.h
lopcodes.o: lopcodes.c lopcodes.h llimits.h lua.h luaconf.h
loslib.o: loslib.c lua.h luaconf.h lauxlib.h lualib.h
lparser.o: lparser.c lua.h luaconf.h lcode.h llex.h lobject.h llimits.h \
lzio.h lmem.h lopcodes.h lparser.h ldebug.h lstate.h ltm.h ldo.h lfunc.h \
lstring.h lgc.h ltable.h
lstate.o: lstate.c lua.h luaconf.h lapi.h llimits.h lstate.h lobject.h \
ltm.h lzio.h lmem.h ldebug.h ldo.h lfunc.h lgc.h llex.h lstring.h \
ltable.h
lstring.o: lstring.c lua.h luaconf.h lmem.h llimits.h lobject.h lstate.h \
ltm.h lzio.h lstring.h lgc.h
lstrlib.o: lstrlib.c lua.h luaconf.h lauxlib.h lualib.h
ltable.o: ltable.c lua.h luaconf.h ldebug.h lstate.h lobject.h llimits.h \
ltm.h lzio.h lmem.h ldo.h lgc.h lstring.h ltable.h lvm.h
ltablib.o: ltablib.c lua.h luaconf.h lauxlib.h lualib.h
ltm.o: ltm.c lua.h luaconf.h lobject.h llimits.h lstate.h ltm.h lzio.h \
lmem.h lstring.h lgc.h ltable.h
lua.o: lua.c lua.h luaconf.h lauxlib.h lualib.h
luac.o: luac.c lua.h luaconf.h lauxlib.h lobject.h llimits.h lstate.h \
ltm.h lzio.h lmem.h lundump.h ldebug.h lopcodes.h
lundump.o: lundump.c lua.h luaconf.h ldebug.h lstate.h lobject.h \
llimits.h ltm.h lzio.h lmem.h ldo.h lfunc.h lstring.h lgc.h lundump.h
lvm.o: lvm.c lua.h luaconf.h ldebug.h lstate.h lobject.h llimits.h ltm.h \
lzio.h lmem.h ldo.h lfunc.h lgc.h lopcodes.h lstring.h ltable.h lvm.h
lzio.o: lzio.c lua.h luaconf.h llimits.h lmem.h lstate.h lobject.h ltm.h \
lzio.h
5、尝试编译vlc-2.2.1。
需要修改vlc-2.2.1/modules/video_output/makefile的1904行:
1903 libgl_plugin.la: $(libgl_plugin_la_OBJECTS) $(libgl_plugin_la_DEPENDENCIES) $(EXTRA_libgl_plugin_la_DEPENDENCIES)
1904 $(AM_V_CCLD)$(libgl_plugin_la_LINK) $(am_libgl_plugin_la_rpath) $(libgl_plugin_la_OBJECTS) $(LIBS) #$(libgl_plugin_la_LIBADD)
否则会出现:cannot find -lGL的错误。
vlc-2.2.1的交叉编译配置如下:
source /home/imhqq/share/huqiqiao/toolchain/environment-setup-cortexa9hf-neon-poky-linux-gnueabi
cd /home/imhqq/share/huqiqiao/vlc-2.2.1
export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/ffmpeg/lib/pkgconfig:/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/alsa/lib/pkgconfig:/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/libmad/lib/pkgconfig:/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/libgpg-error/lib/pkgconfig:/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/libgcrypt/lib/pkgconfig:/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/x264/lib/pkgconfig:/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/madplay/lib/pkgconfig:/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/libogg/lib/pkgconfig:/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/libvorbis/lib/pkgconfig:/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/vorbis-tools/lib/pkgconfig:/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/libxml2/lib/pkgconfig"
export LDFLAGS="-ggdb3 -L/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/ffmpeg/lib -L/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/x264/lib -L/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/alsa/lib -L/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/libgcrypt/lib -L/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/libgpg-error/lib -L/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/libmad/lib -L/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/madplay/lib -L/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/libogg/lib -L/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/libvorbis/lib -L/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/vorbis-tools/lib -L/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/libxml2/lib -L/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/lua/lib"
export dependency_libs=' -L/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/ffmpeg/lib -L/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/x264/lib -L/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/alsa/lib -L/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/libgcrypt/lib -L/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/libgpg-error/lib -L/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/libmad/lib -L/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/madplay/lib -L/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/libogg/lib -L/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/libvorbis/lib -L/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/vorbis-tools/lib -L/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/libxml2/lib /home/imhqq/share/huqiqiao/vlc-2.2.1/src/libvlccore.la -lrt -ldl -lm=/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/libogg/lib/libogg.la -L/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/lua/lib'
export CFLAGS="-ggdb3 -O0 -O2 -pipe -g -I/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/libmad/include -I/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/ffmpeg/include -I/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/x264/include -I/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/alsa/include -I/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/libgcrypt/include -I/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/libgpg-error/include -I/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/madplay/include -I/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/libxml2/include -I/home/imhqq/share/huqiqiao/vlc-2.2.1-plugin/lib/lua/include"
./configure -C --build=x86_64-linux-gnu --target=arm-poky-linux-gnueabi --host=arm-poky-linux-gnueabi --prefix=/home/imhqq/share/huqiqiao/vlc-2.2.1/arm_vlc_build1 --enable-run-as-root --enable-vlc --enable-avformat --enable-mad --enable-httpd --enable-realrtsp --enable-sout --enable-libass --enable-optimizations --disable-postproc --disable-mod --disable-debug --disable-dbus --disable-sdl --disable-sdl-image --disable-swscale --disable-xcb --disable-qt --disable-a52 --disable-gles2 --disable-gles1 --disable-screen --disable-live555 --disable-macosx --disable-macosx-dialog-provider --disable-macosx-qtkit --disable-macosx-eyetv --disable-macosx-vlc-app --disable-altivec --disable-coverage --disable-taglib --disable-dvdread --disable-dvdnav --disable-dvbpsi --disable-v4l2 --disable-vcdx --disable-vcd --disable-dca --disable-tremor --disable-gme --disable-faad --disable-flac --disable-speex --disable-theora --disable-schroedinger --disable-png --disable-telx --disable-kate --disable-xvideo --disable-freetype --disable-fribidi --disable-fontconfig --disable-libgcrypt --disable-ncurses --disable-bonjour --disable-atmo --disable-gnutls --disable-skins2 --disable-lirc --disable-opencv --disable-silent-rules --disable-neon --disable-dc1394 --disable-vlm --disable-gnomevfs --disable-twolame --disable-sftp --disable-notify --disable-shout --disable-aa --disable-caca --disable-jack --disable-merge-ffmpeg --disable-libva --disable-dxva2 --disable-shine --disable-zvbi --disable-tiger --disable-maintainer-mode --disable-dependency-tracking --disable-gprof --disable-cprof --disable-libcddb --disable-wma-fixed --disable-omxil --disable-quicktime --disable-fluidsynth --disable-svg --disable-directfb --disable-upnp --disable-goom --disable-projectm --disable-udev --disable-mtp --disable-update-check --disable-linsys --disable-bluray --disable-smbclient --disable-decklink --disable-vnc --disable-freerdp --disable-macosx-avfoundation --disable-asdcp --disable-avcodec --disable-avformat --disable-a52 --disable-libgcrypt --enable-pulse --disable-x264 --disable-glspectrum --enable-lua
6、上单板验证vlc功能,尝试播放MP3,出现下面的错误:
image.png
pulse audio output error: PulseAudio server connection failure: Connection refused
原因分析:
./modules/audio_output/vlcpulse.c:195: vlc_pa_error (obj, "PulseAudio server connection failure", ctx);
3、交叉编译vlc-2.2.1的PulseAudio插件。
(未成功,待续......)