zoukankan      html  css  js  c++  java
  • 移植x264到vs2008之一

    最新的x264已经没有提供windows版的可编译工程,微软的VS编程开发工具无疑是最好的调试工具,要把它移植到vs开发环境下面有很多的工作要做。

    网上也有很多人在问找x264的vs版本,本人根据之前在项目中的移植经验,总结如下:

    1.从官网上下载最新的x264代码,我下载代码是2012年的版本x264-snapshot-20120108-2245。

    2.x264在不同的目录下面有好几个文件名字是相同的,需要重新命名,否则会出现你无法想象到的链接错误。

    3.把所有的代码添加到微软的VS2008的开发环境里面,编译。这时候,你会发现有很多编译错误,注意先不要加汇编。

      这些编译错误,总的来说,主要是由两类原因引起的。

     3.1 x264采用的C99的语法标准,而VS2008的开发环境是不支持这些语法的。

     3.2 相应的宏开关没有打开。

    对于第一类错误,是一个体力活,也就是把这些C99的语法改成标准的C语言语法。这项工作大概需要2到3天的时间。

    对于第二类错误,就是根据相应错误,找到其代码所在的宏,把相应的宏加到工程里面去。需要增加的宏主要如下:

     HAVE_STRING_H
    __ICL
    _WIN32
    SYS_WINDOWS
    HAVE_THREAD
    HAVE_VISUALIZE
    ARCH_X86
    ARCH_X86_32

    4. 这时候,你会发现,还有一些没有定义的宏和其它一些编译错误,有一个宏BIT_DEPTH,这个要重新定义为8。还有有些文件是没有必要加进来的,可以去掉。比如,output目录下面的mp4,flv相关的文件从工程中去掉,input目录里面同样有些文件可以去掉。

    5. x264里的有一类宏定义的参数可变的,这种vs开发环境当中不支持的。需要把可变参数宏修改为固定的参数宏定义,代码中用到了几个参数的宏就重新定义几个参数的宏。

    6.  当所有的编译错误已经解决之后,就是链接错误。这个比较容易解决,一般都是相关的宏没有打开。找到这些代码对应宏,将宏重新定义上。

    7.  如果你完成了上面的过程,你基本上可以再vs平台用c代码跑x264了。

  • 相关阅读:
    CentOS查看CPU信息、位数、多核信息
    Linux常用命令大全
    chmod命令详细用法
    tar命令的详细解释
    yum和rpm命令详解
    LeetCode 241. Different Ways to Add Parentheses
    LeetCode 139. Word Break
    LeetCode 201. Bitwise AND of Numbers Range
    LeetCode 486. Predict the Winner
    LeetCode 17. Letter Combinations of a Phone Number
  • 原文地址:https://www.cnblogs.com/celerychen/p/2951470.html
Copyright © 2011-2022 走看看