主要参考:

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应用 遇到的问题及解决办法相关推荐

  1. window2008 64位系统无法调用Microsoft.Office.Interop组件进行文件另存的解决办法

    服务器是windows server2008 64位系统,项目中需要用到Microsoft.Office.Interop组件,包括excel.word.ppt等. 步骤  1.在"开始&qu ...

  2. windows ODBC数据源管理程序(64位) 添加系统DSN时没有Microsoft Acess Driver(*.mdb,*.accdb)选项的解决办法

    最近在使用Access2013 64位版导入excel更新CIS库时,突然提示我向导没有安装或者损坏,就干脆卸载了office2013,直接安装office2016 X64 安装成功后,发现Acces ...

  3. Win10 64位系统8G内存升级到10G后,显示3.92G可用解决办法

    Win10 64位系统,原来两根4G海力士内存,现在加了一根2G金士顿内存,但是查看到10G内存却显示3.92G可用,笔者多年前也遇到不少这样的问题,由于笔者比较懒,解决后也懒得写博客分享,今天再次遇 ...

  4. 关于VS中区分debug与release,32位与64位编译的宏定义

    在vs编程中,常常涉及到32位和64位程序的编译,怎么判断当前编译是32位编译还是64位编译?如何判断 是debug下编译还是release下编译?因为之前用到,这里记录一下,省的忘了又要疯狂的goo ...

  5. windows 10下 opessl 64位编译

    说明 项目中先前运行程序全部是编译成32位版本进行发版,现进行改造改为64位版本进行发布.涉及到第三方依赖库全需对应编译出64位依赖库. 环境 Windows 10 编译器 vs 2010 (由于本机 ...

  6. VC2010添加64位编译模式

    本文借鉴了网上很多文章,仅用于个人备份. 工程->属性 Name起名字,随便起.然后选择从现有的Release配置中copy配置内容 有的可能还需要添加WIN64的宏定义 问题分析: 1. 注意 ...

  7. CATIA CAA 32位和64位编译

    CATIA CAA 32位和64位编译 CATIA 编译32位和64位程序,CATIA有32位和64位的区别,CAAheadRADE没有32位和64位的区别.编译不同版本的插件时,仅需修改环境变量,然 ...

  8. oracle10 64位odbc,图文教你64位win10添加oracle odbc驱动时提示无法加载oracle如何解决...

    现在电脑已成为我们工作生活的一部分,相信大家在操作电脑时一定会遇到这样那样的问题,64位win10添加oracle odbc驱动时提示无法加载oracle如何解决这个问题就是我们经常会遇到的,这样的问 ...

  9. win7 64位 VS2010调试提示“ORA-12154: TNS: 无法解析指定的连接标识符”的解决方法

    win7 64位 VS2010调试提示"ORA-12154: TNS: 无法解析指定的连接标识符"的解决方法 参考文章: (1)win7 64位 VS2010调试提示"O ...

最新文章

  1. 每日一皮:我们最要避开的山寨产品...
  2. Thymeleaf 模板 springboot集成使用
  3. jvm简单笔记(3)
  4. c# winform实现输出数据到Console控制台窗台
  5. 多个网站tracert测试用的批处理
  6. mysql 字符串转long_把数据库中的字符串格式转为long类型
  7. 休眠事实:集成测试策略
  8. windows下python环境搭建_Linux/Windows下Python环境搭建步骤
  9. navicat安装指南
  10. 第二十讲、迭代器模式
  11. Badboy+Jmeter进行性能测试
  12. 小米线刷包需要解压么_小米8官方原版线刷包rom刷机包下载_小米8线刷官方包的教程...
  13. 如何把书上的字弄到电脑
  14. C# 用itextsharp把Html转PDF
  15. 机器学习入门实战——决策树算法实战Titanic数据集
  16. 日常食物软分类与烹饪方法的思考——预防肥胖
  17. Hyper-v集群高可用性配置
  18. 【工具】笔记软件测评(简单)
  19. postfix 邮箱设置及常见错误
  20. 一个爬取沪深两市融资融券标的融资融券交易数据的小爬虫

热门文章

  1. SteamVR+Vive叠影器不可用436报错思考与解决
  2. 2022-2028全球与中国气体浓度传感器市场现状及未来发展趋势
  3. 关于更新了10.14以后 罗技Optins驱动下的鼠标滚轮及功能键失效的解决方法
  4. 实现图像检索系统需要用到哪方面的知识?
  5. Java中各种BO、POJO类
  6. 微信朋友圈的营销技巧有哪些
  7. SQL 注入读写文件
  8. 链锯:基于链接的自动化工作流漏洞生成
  9. cc1310 学习调试记录
  10. js获取html中多个id,js获取数据库中多个id然后进行操作