UBUNTU16 64位编译VLC-2.2.8/4 WIN32应用 遇到的问题及解决办法
主要参考:
https://blog.csdn.net/longji/article/details/52304590 vlc-2.2.4 交叉编译 UbuntuX64_1604_Desktop 编译windows版本vlc
http://www.knowsky.com/1042484.html vlc2.2.4在64位ubuntu下的交叉编译
9月30号完成了对VLC-3.0.4的win32编译,请参考:我的https://blog.csdn.net/danfbaore/article/details/82892467
VLC及CONTRIB下载的镜像地址:https://mirrors.ustc.edu.cn/videolan-ftp
1,make prebuilt 时不要自动下载vlc-contrib-i686-w64-mingw32-latest.tar.bz2,请下载 手动下载
vlc-contrib-x86_64-w64-mingw32-20160218.tar.bz2 更名后放在CONTRIB/WIN32.
20150630及以前版本不要使用,否则在后边MAKE时会出MKV等模块编译失败。
最新的版本也不能使用,否则会提示libavautil等版本不能使用大小55或56的新版本。
2, 有这些相关报错时:gperf,flex,bison,等,可用 sudo apt-get install gperf flex bison安装。
3,JAVA版本,一定要看清楚:
java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)
如果是openjdk 需要:sudo apt-get remove openjdk* 参考https://www.linuxidc.com/Linux/2017-02/140908.htm
卸载后发现ANT也没有了,需要重新安装。不知为什么我每次开一个终端看JAVA版本还是OPENJDK 只能再重新写下配置让其生效后才得到想要的JDK1.8
4, 64位UBUNTU上编译VLC时提示需要32位LUAC 按以下方式安装。
configure: error: You need 32-bits luac when using lua from contrib
参考:https://stackoverflow.com/questions/36273574/configure-error-you-need-32-bits-luac-when-using-lua-from-contrib
sudo apt-get install lua5.1:i386
5,2.2.8目前在打包时不能下载 失败,但编译出的程序是可用的。
6,这两个版本都能正常播放视频, 但我串流时能拉流,转换为HTTP流推出时失败, 试了下官方的好象也不行,不知是不是版本问题,官方的3.0以上版本是可以的。
7,使用 sudo make install 否则可能有权限问题。
8,最后一步make package-win32-zip 遇到错误 提示/usr/include/wine/windows/stdole2.idl 文件找不到,
我试了下:sudo apt-get install wine-dev 可以了。
9,以下为主要命令:
sudo wget https://mirrors.ustc.edu.cn/videolan-ftp/vlc/2.2.4/vlc-2.2.4.tar.xz
sudo apt-get install gcc-mingw-w64-i686 g++-mingw-w64-i686 mingw-w64-tools
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install gcc-mingw-w64-i686 g++-mingw-w64-i686 mingw-w64-tools
sudo apt-get install lua5.1 lua5.2 liblua5.1-dev liblua5.2.dev
sudo apt-get install libtool automake autoconf autopoint make gettext
sudo apt-get install pkg-config qt4-dev-tools qt5-default
sudo apt-get install git subversion cmake cvs zip p7zip p7zip-full nsis bzip2
sudo apt-get install yasm ragel wine-dev
sudo wget https://mirrors.ustc.edu.cn/videolan-ftp/contrib/i686-w64-mingw32/vlc-contrib-i686-w64-mingw32-20160218.tar.bz2
../bootstrap --host=i686-w64-mingw32
make prebuilt
cd ../..
cd win32
../bootstrap
sudo apt-get install flex bison
sudo apt-get install gperf
//以下配置注意版本,这是2.2.4的
export PKG_CONFIG_PATH=$HOME/vlc-2.2.4/contrib/i686-w64-wingw32/lib/pkgconfig
export PKG_COFIG_LIBDIR=$HOME/vlc-2.2.4/contrib/i686-w64-mingw32/lib/pkgconfig
export PKG_CONFIG_PATH_CUSTOM=$PKG_CONFIG_LIBDIR
java -version
../configure --host=i686-w64-mingw32
make
make package-win-common
wine ./vlc-2.2.4/vlc.exe
sudo apt-get install wine
wine ./vlc-2.2.4/vlc.exe
make package-win32-7zip
sudo apt-get install wine-dev
make package-win32-7zip
编译出的库比官方小, 串流时能拉出流,却不能推出HTTP OGG的流。VLM返回流失败,经测试官方这个版本也没有这个功能。
10,试了下UBUNT18版本,也会有MKV报错.
11,目前为止3.0.0及以上版本不论是PREBUILT还是FETCH都不能编译出WIN32版本,如有编译成功的请告诉我下,不胜感激。3.0.0报错如下:
vlc-3.0.0 使用CONTRIB 20180218 编译PREBUILT
d@ubuntu:~/vlc-3.0.0/contrib/win32$ ../bootstrap --host=i686-w64-mingw32
d@ubuntu:~/vlc-3.0.0/contrib/win32$ make prebuilt
d@ubuntu:~/vlc-3.0.0/contrib/win32$ cd ../.. && cd win32
d@ubuntu:~/vlc-3.0.0/win32$ ../bootstrap
d@ubuntu:~/vlc-3.0.0/win32$ export PKG_CONFIG_PATH=$HOME/vlc-3.0.0/contrib/i686-w64-mingw32/lib/pkgconfig
d@ubuntu:~/vlc-3.0.0/win32$ export PKG_CONFIG_LBDIR=$HOME/vlc-3.0.0/contrib/i686-w64-mingw32/lib/pkgconfig
d@ubuntu:~/vlc-3.0.0/win32$ export PKG_CONFIG_PATH_CUSTOM=$PKG_CONFIG_LIBDIR
d@ubuntu:~/vlc-3.0.0/win32$ ../configure --host=i686-w64-mingw32
checking for MPG123... no
configure: WARNING: Library libmpg123 needed for mpg123 was not found
checking for GST_APP... no
configure: WARNING: No package 'gstreamer-app-1.0' found. GStreamer modules will not be built.
checking for libavutil variant... ffmpeg
checking for AVCODEC... no
configure: error: Requested 'libavcodec >= 57.37.100' but version of libavcodec is 56.56.101. Pass --disable-avcodec to ignore this error.
d@ubuntu:~/vlc-3.0.0/win32$ ../configure --host=i686-w64-mingw32 --disable-avcodec
d@ubuntu:~/vlc-3.0.0/win32$ make
make[4]: Entering directory '/home/d/vlc-3.0.0/win32/modules'
^
CCLD libaccess_wasapi_plugin.la
CC access/shm.lo
CCLD libshm_plugin.la
CXX access/dshow/dshow.lo
In file included from ../../modules/access/dshow/dshow.cpp:52:0:
../../modules/access/dshow/access.h:33:24: fatal error: wrl/client.h: No such file or directory
compilation terminated.
Makefile:25225: recipe for target 'access/dshow/dshow.lo' failed
make[4]: *** [access/dshow/dshow.lo] Error 1
make[4]: Leaving directory '/home/d/vlc-3.0.0/win32/modules'
Makefile:26104: recipe for target 'all-recursive' failed
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory '/home/d/vlc-3.0.0/win32/modules'
Makefile:11217: recipe for target 'all' failed
make[2]: *** [all] Error 2
make[2]: Leaving directory '/home/d/vlc-3.0.0/win32/modules'
Makefile:1530: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/d/vlc-3.0.0/win32'
Makefile:1415: recipe for target 'all' failed
make: *** [all] Error 2
使用最新CONTRIB 配置时不再报错
MAKE 时报错如下:
CC input/vlm_event.lo
CC input/vlmshell.lo
../../src/input/vlmshell.c: In function ‘vlm_Show’:
../../src/input/vlmshell.c:1505:51: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
while( ((s->date + j * s->period) <= now) &&
^
CCLD libvlccore.la
/home/d/vlc-3.0.0/contrib/i686-w64-mingw32/lib/libintl.a(printf.o): In function `libintl_vprintf':
/home/jenkins/workspace/vlc-nightly/vlc-nightly-win32-x86/contrib/contrib-win32/gettext/gettext-tools/intl/../../gettext-runtime/intl/printf.c:138: undefined reference to `_imp____acrt_iob_func'
/home/jenkins/workspace/vlc-nightly/vlc-nightly-win32-x86/contrib/contrib-win32/gettext/gettext-tools/intl/../../gettext-runtime/intl/printf.c:138: undefined reference to `_imp____acrt_iob_func'
/home/d/vlc-3.0.0/contrib/i686-w64-mingw32/lib/libintl.a(printf.o): In function `libintl_vwprintf':
/home/jenkins/workspace/vlc-nightly/vlc-nightly-win32-x86/contrib/contrib-win32/gettext/gettext-tools/intl/../../gettext-runtime/intl/printf.c:368: undefined reference to `_imp____acrt_iob_func'
/home/jenkins/workspace/vlc-nightly/vlc-nightly-win32-x86/contrib/contrib-win32/gettext/gettext-tools/intl/../../gettext-runtime/intl/printf.c:368: undefined reference to `_imp____acrt_iob_func'
collect2: error: ld returned 1 exit status
Makefile:2234: recipe for target 'libvlccore.la' failed
make[3]: *** [libvlccore.la] Error 1
make[3]: Leaving directory '/home/d/vlc-3.0.0/win32/src'
Makefile:1785: recipe for target 'all' failed
make[2]: *** [all] Error 2
make[2]: Leaving directory '/home/d/vlc-3.0.0/win32/src'
Makefile:1530: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/d/vlc-3.0.0/win32'
Makefile:1415: recipe for target 'all' failed
make: *** [all] Error 2
使用MAKE FETCH
MAKE ERROR:
mkdir -p d3d11
cp ../../contrib/tarballs/d3d11.idl d3d11 && cd d3d11 && patch -fp1 < ../../../contrib/src/d3d11/processor_format.patch
patching file d3d11.idl
mkdir -p -- "/home/d/vlc-3.0.0/contrib/i686-w64-mingw32/include/"
i686-w64-mingw32-widl -DBOOL=WINBOOL -I/usr/include/wine/windows/ -h -o /home/d/vlc-3.0.0/contrib/i686-w64-mingw32/include/d3d11.h d3d11/d3d11.idl
mkdir -p -- "/home/d/vlc-3.0.0/contrib/i686-w64-mingw32/include/"
i686-w64-mingw32-widl -DBOOL=WINBOOL -I/usr/include/wine/windows/ -h -o /home/d/vlc-3.0.0/contrib/i686-w64-mingw32/include/dxgidebug.h ../../contrib/tarballs/dxgidebug.idl
mkdir -p -- "/home/d/vlc-3.0.0/contrib/i686-w64-mingw32/include/"
cp ../../contrib/tarballs/dxgitype.h /home/d/vlc-3.0.0/contrib/i686-w64-mingw32/include/dxgitype.h
touch .dxgitype
mkdir -p dxgi12
cp ../../contrib/tarballs/dxgi1_2.idl dxgi12 && cd dxgi12 && patch -fp1 < ../../../contrib/src/d3d11/dxgi12.patch
patching file dxgi1_2.idl
mkdir -p -- "/home/d/vlc-3.0.0/contrib/i686-w64-mingw32/include/"
i686-w64-mingw32-widl -DBOOL=WINBOOL -I/usr/include/wine/windows/ -h -o /home/d/vlc-3.0.0/contrib/i686-w64-mingw32/include/dxgi1_2.h dxgi12/dxgi1_2.idl
dxgi12/dxgi1_2.idl:43: error: syntax error, unexpected aKNOWNTYPE, expecting tIMPORT
../../contrib/src/d3d11/rules.mak:65: recipe for target '/home/d/vlc-3.0.0/contrib/i686-w64-mingw32/include/dxgi1_2.h' failed
make: *** [/home/d/vlc-3.0.0/contrib/i686-w64-mingw32/include/dxgi1_2.h] Error 1
9月30号完成了对VLC-3.0.4的编译,请参考:我的https://blog.csdn.net/danfbaore/article/details/82892467
UBUNTU16 64位编译VLC-2.2.8/4 WIN32应用 遇到的问题及解决办法相关推荐
- window2008 64位系统无法调用Microsoft.Office.Interop组件进行文件另存的解决办法
服务器是windows server2008 64位系统,项目中需要用到Microsoft.Office.Interop组件,包括excel.word.ppt等. 步骤 1.在"开始&qu ...
- windows ODBC数据源管理程序(64位) 添加系统DSN时没有Microsoft Acess Driver(*.mdb,*.accdb)选项的解决办法
最近在使用Access2013 64位版导入excel更新CIS库时,突然提示我向导没有安装或者损坏,就干脆卸载了office2013,直接安装office2016 X64 安装成功后,发现Acces ...
- Win10 64位系统8G内存升级到10G后,显示3.92G可用解决办法
Win10 64位系统,原来两根4G海力士内存,现在加了一根2G金士顿内存,但是查看到10G内存却显示3.92G可用,笔者多年前也遇到不少这样的问题,由于笔者比较懒,解决后也懒得写博客分享,今天再次遇 ...
- 关于VS中区分debug与release,32位与64位编译的宏定义
在vs编程中,常常涉及到32位和64位程序的编译,怎么判断当前编译是32位编译还是64位编译?如何判断 是debug下编译还是release下编译?因为之前用到,这里记录一下,省的忘了又要疯狂的goo ...
- windows 10下 opessl 64位编译
说明 项目中先前运行程序全部是编译成32位版本进行发版,现进行改造改为64位版本进行发布.涉及到第三方依赖库全需对应编译出64位依赖库. 环境 Windows 10 编译器 vs 2010 (由于本机 ...
- VC2010添加64位编译模式
本文借鉴了网上很多文章,仅用于个人备份. 工程->属性 Name起名字,随便起.然后选择从现有的Release配置中copy配置内容 有的可能还需要添加WIN64的宏定义 问题分析: 1. 注意 ...
- CATIA CAA 32位和64位编译
CATIA CAA 32位和64位编译 CATIA 编译32位和64位程序,CATIA有32位和64位的区别,CAAheadRADE没有32位和64位的区别.编译不同版本的插件时,仅需修改环境变量,然 ...
- oracle10 64位odbc,图文教你64位win10添加oracle odbc驱动时提示无法加载oracle如何解决...
现在电脑已成为我们工作生活的一部分,相信大家在操作电脑时一定会遇到这样那样的问题,64位win10添加oracle odbc驱动时提示无法加载oracle如何解决这个问题就是我们经常会遇到的,这样的问 ...
- win7 64位 VS2010调试提示“ORA-12154: TNS: 无法解析指定的连接标识符”的解决方法
win7 64位 VS2010调试提示"ORA-12154: TNS: 无法解析指定的连接标识符"的解决方法 参考文章: (1)win7 64位 VS2010调试提示"O ...
最新文章
- 每日一皮:我们最要避开的山寨产品...
- Thymeleaf 模板 springboot集成使用
- jvm简单笔记(3)
- c# winform实现输出数据到Console控制台窗台
- 多个网站tracert测试用的批处理
- mysql 字符串转long_把数据库中的字符串格式转为long类型
- 休眠事实:集成测试策略
- windows下python环境搭建_Linux/Windows下Python环境搭建步骤
- navicat安装指南
- 第二十讲、迭代器模式
- Badboy+Jmeter进行性能测试
- 小米线刷包需要解压么_小米8官方原版线刷包rom刷机包下载_小米8线刷官方包的教程...
- 如何把书上的字弄到电脑
- C# 用itextsharp把Html转PDF
- 机器学习入门实战——决策树算法实战Titanic数据集
- 日常食物软分类与烹饪方法的思考——预防肥胖
- Hyper-v集群高可用性配置
- 【工具】笔记软件测评(简单)
- postfix 邮箱设置及常见错误
- 一个爬取沪深两市融资融券标的融资融券交易数据的小爬虫