編譯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)

通過以上方法就可直接在官方網站下載代碼自己編譯了。如果大家在編譯過程中有什麼問題或學習經驗,請貼出來共同分享。 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章