如何在vc6,vc7,vc8下编译x264

最近在学习H264 ,用SVN直接下载源代码在VC环境下编译,主要是参考李世平老师在 http://blog.csdn.net/sunshine1314/archive/2005/05/20/377158.aspx中所讲的,但还是不能直接编译通过,本人作如下修改,便能顺利通过编译,在此写下来供初学者参考。
  1. 所用的代码为2006年7月26日用TortiseSVN从官方网站站上下载;
  2. 编译环境完全按照李世平老师所讲的;
  3. 将build/win32目录下的所有文件(共8个文件)用写字板打开后按照原文件名保存;
  4. 用写字板将libx264.dsp文件打开并删除376~379行的内容后保存,即删除:     # Begin Source File SOURCE="../../common/i386/dct-c.c"    # End Source File

             用同样的方法将libx264.vcproj打开并删除1058~1085行内容后保存,即删除:

    <File<File  RelativePath="../../common/i386/dct-c.c">
     <FileConfiguration
      Name="Release|Win32">
      <Tool
       Name="VCCLCompilerTool"
       Optimization="2"
       AdditionalIncludeDirectories=""
       PreprocessorDefinitions=""/>
     </FileConfiguration>
     <FileConfiguration
      Name="Debug|Win32">
      <Tool
       Name="VCCLCompilerTool"
       Optimization="0"
       AdditionalIncludeDirectories=""
       PreprocessorDefinitions=""
       BasicRuntimeChecks="3"/>
     </FileConfiguration>
     <FileConfiguration
      Name="Release64|Win32">
      <Tool
       Name="VCCLCompilerTool"
       Optimization="2"
       AdditionalIncludeDirectories=""
       PreprocessorDefinitions=""/>
     </FileConfiguration>
    </File>

5.接下来就可以编译了:但在编译时会出现两处“L”和“ULL”有问题的地方(只是在VC6中出现这种问题,VC7和VC8中不会出现这种问题),就直接将“L”和“ULL”删除就行(因为数据类型问题)。即:common/predict.c的615行 *(uint64_t*)(edge+24) = SRC(7,-1) * 0x0101010101010101ULL;改为 *(uint64_t*)(edge+24) = SRC(7,-1) * 0x0101010101010101;和matroksa.c中的431行 if (delta > 32767ll || delta < -32768ll)改为 if (delta > 32767 || delta < -32768)

通过以上方法就可直接在官方网站下载代码自己编译了。如果大家在编译过程中有什么问题或学习经验,请贴出来共同分享。


 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值