首页 > 其他分享 >MinGW编译x264,VC中调用libx264.dll

MinGW编译x264,VC中调用libx264.dll

时间:2022-12-23 17:24:24浏览次数:60  
标签:VC lib libx264 MinGW dll 152 x264

1. 下载并按照MinGW,最好就缺省按照
    http://sourceforge.net/projects/ ... ler/mingw-get-inst/
    把C:\MinGW\bin添加到PATH中 (dos命令行 PATH %PATH%;新目录;)
2. 下载nasm,
    http://www.nasm.us/pub/nasm/releasebuilds/
    解压后把nasm.exe拷贝到C:\MinGW\bin中
3. 下载最新的x264
    http://www.videolan.org/developers/x264.html
4. 运行C:\MinGW\msys\1.0\msys.bat,启动MinGW,cd到x264目录
5../configure

    ./make
    将会生成x264.exe 和 libx264.a。x264.exe可以进行编码。
   
    ./configure --enable-shared
    ./make
    将会生成libx264-152.dll, -152是我下载x264的版本号,这个有可能不一样的。
6.  安装pexports
    在C:\MinGW\bin看看有没有pexports.exe, 如果没有
    mingw-get install pexports
7. dll to def
    pexports.exe libx264-152.dll > libx264-152.def
    将dll里面所有的函数名提取出来
8. to lib
    在..\VC\bin目录下有lib.exe文件,但一般都不能直接运行,少了一些dll.
    拷贝Common7\IDE 里面的mspdb80.dll,mspdbcore.dll,mspdbsrv.exe,msobj80.dll复制到上面的bin文件。(vs2013 应该是120 ,而且也不用拷贝这些)
    添加..\VC\bin目录到PATH。
    lib.exe /machine:ix86 /def:libx264-152.def
    生成libx264-152.lib。.lib文件是为了给linker用,这样可以方便的静态调用libx264-152.dll。
    编译时不用.dll,运行的时候才用到。

 

9. 测试libx264-152.dll
   9.1 新建一个空工程;
   9.2 新建一个.cpp文件,复制一下内容
       #include <stdio.h>
       #include "stdint.h"

       #pragma comment(lib,"libx264-152.lib")  // 静态调用
       extern "C"
       {
       #include "x264.h"
       };

       int main(void) {
                 printf("libx264-version:%d\n", X264_BUILD);

                 x264_param_t param;
           x264_param_default(&param);
           return 0;
       }
       “stdint.h”会有问题,在网上搜一下吧。     
   9.3 拷贝x264目录下的 x264.h, x264_config.h。 
   9.4 拷贝libx264-152.lib到此工程目录下。
   9.5 拷贝libx264-152.dll到该工程输出目录下(Debug 或者Release目录)。
   应该就可以用了,试试吧。

标签:VC,lib,libx264,MinGW,dll,152,x264
From: https://www.cnblogs.com/kn-zheng/p/17001134.html

相关文章

  • vc通过进程名返回进程id
    std::stringWcharToChar(constwchar_t*wp,size_tm_encode=CP_ACP){std::stringstr;intlen=WideCharToMultiByte(m_encode,0,wp,wcslen(wp),NULL,0......
  • 跨平台C++ DLL导出宏
    #pragmaonce#ifdefined(__GNUC__)#define_DEPRECATED___attribute__((deprecated))#define_FORCE_INLINE___attribute__((always_inline))#elifdefined(_MSC_......
  • SpringBoot2.x系列教程25--整合SpringMVC之欢迎页面与自定义Favicon
    SpringBoot2.x系列教程25--整合SpringMVC之欢迎页面与自定义Favicon作者:一一哥一.SpringBoot设置欢迎页面1.默认欢迎页的源码在SpringBoot中,默认的欢迎界面是index.html,那......
  • 每天一点基础K8S--K8S中的存储方案PV、PVC
    持久卷PV官网文档https://kubernetes.io/zh-cn/docs/concepts/storage/persistent-volumes/什么是PV和PVC持久卷(PersistentVolume,PV) 是集群中的一块存储,可以由管理员......
  • SpringMVC学习笔记
    1、认识SpringMVC1、什么是MVCMVC是一种软件架构的思想,将软件按照模型、视图、控制器来划分M:Model,模型层,指工程中的JavaBean,作用是处理数据JavaBean分为两类:一类称......
  • 【VMware NSX-T】在vCenter内直接将Manager设备删除后,ESXi上还遗留N-VDS交换机及网卡
    由于之前在实验平台安装了NSX-T的测试环境,但是由于太忙了没怎么测试,后来实验环境出了点小问题,索性就将上面所有虚拟机给清空了。但是没想到上面遗留了NSX-T上创建的N-VDS交......
  • CGAL安装教程(非vcpkg)
    本次分享的是CGAL的安装教程,采用的是官方说的第二种方式,即:  安装流程如下:1.首先在CGAL的官方Github网址中下载CGAL和GMPandMPFRlibrariesCGAL从5.0版本开......
  • SpringMVC大文件上传详解及实例代码
    ​ 最近遇见一个需要上传百兆大文件的需求,调研了七牛和腾讯云的切片分段上传功能,因此在此整理前端大文件上传相关功能的实现。在某些业务中,大文件上传是一个比较重要的......
  • SpringMvc 之异常,前端结合,过滤器
      SpringMvc中出现异常的位置主要有以下地方: 所以在很多地方都会出现异常,所以对于异常,一个集中出来处理,因此要创建异常处理器类,来集中处理异常,其内部是Aop思想,......
  • VC 读写Excel (第三方类CSpreadSheet)
    1. 用VC6新建一个基于对话框的项目;2. 添加 CSpreadSheet.h,CSpreadSheet.cpp到项目中;3. 在C*Dlg.h 中添加 : #include "CSpreadSheet.h"4. 添加对应的读写函数5. 读......