mingw(msys2)编译libdvdread和libdvdnav

mingw(msys2)编译libdvdread和libdvdnav

编译

获取源码:git clone https://code.videolan.org/videolan/libdvdread.git

进入源码目录,依次执行下列命令:

  • libtoolize
  • aclocal
  • autoheader
  • autoconf
  • automake --add-missing
静态库
  • ./configure --prefix=“你想要安装到的目录”
动态库
  • ./configure --prefix=“你想要安装到的目录” --enable-shared
    (在make之后出现警告:*libtool: warning: undefined symbols not allowed in i686-w64-mingw32 shared libraries; building static only*
    解决办法:打开Makefile.in文件 在LDFLAGS 选项后面添加 -no-undefined 编译选项。
    在这里插入图片描述

      编译完成会生成libdvdread.lib.a(动态链接)和libdvdread.a(静态库)文件)

  • make
  • make install

一些解释:

libtoolize:复制/链接了一些支持脚本,包括ltmain.sh文件(这是libtool的主要组件)。

aclocal:查找配置脚本所需的所有m4宏,并生成本地副本以便于访问。

autoheader:可选,如果要使用
config.h/AC_CONFIG_HEADERS头,否则调用编译器时所有测试结果宏都将内联。

autoconf:展开configure.ac进入配置脚本。

automake:转换所有makefile.am进入makefile.in模板。可以加上–add missing选项,以便可以将其他支持脚本链接/复制到你的的项目(如compile、missing、depcomp、test-driver等)。

编译libdvdnav

编译

获取源码:git clone https://code.videolan.org/videolan/libdvdnav.git

进入源码目录,依次执行下列命令:

  • libtoolize
  • aclocal
  • autoheader
  • autoconf
  • automake --add-missing
    编译libdvdnav需要用到刚才编译的libdvdread库(路径替换成你安装的libdvdread库路径)
  • export PKG_CONFIG_PATH=/usr/local/libdvdread/lib/pkgconfig:$PKG_CONFIG_PATH
静态库
  • ./configure --prefix=“你想要安装到的目录”
动态库
  • ./configure --prefix=“你想要安装到的目录” --enable-shared
    (在make之后出现警告:*libtool: warning: undefined symbols not allowed in i686-w64-mingw32 shared libraries; building static only*
    解决办法:打开Makefile.in文件 在LDFLAGS 选项后面添加 -no-undefined 编译选项。
    在这里插入图片描述

      编译完成会生成libdvdnav.lib.a(动态链接)和libdvdnav.a(静态库)文件)

  • make
  • make install

注意:
如果需要在vs下使用libdvdread和libdvdnav库,不能直接将libdvdread.dll.a和libdvdnav.dll.a强制改为libdvdread.lib和libdvdnav.lib,需要在mingw下使用pexports导出libdvdread.dll的def文件,再在cmd中使用lib命令生成lib文件:

pexports.exe可在https://sourceforge.net/projects/mingw/files/MinGW/Extension/pexports/下载,下载后将pexports.exe复制到mingw32和mingw64的bin目录下,我的目录是C:/msys64/mingw32/bin。

mingw命令:
pexports libdvdread-8.dll > dvdread.def
cmd命令:
32位:lib /def:dvdread.def /machine:i386 /out:dvdread.lib
64位:lib /def:dvdread.def /machine:x64 /out:dvdread.lib

libdvdnav库同理。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值