libx264在VS2013中編譯

libx264最新版本已經沒有VS工程了,下載以前版本有VS工程,可以編譯成功。libx264裏面有部分彙編代碼,採用的編譯器是YASM,所以首先要把YASM集成到VS2013中。下面記錄一下編譯中遇到的問題。編譯環境VS2013&&WIN10。

1.卸載系統中YASM。搜索系統中的yasm.exe,yasm.props,yasm.xml,yasm.targetsvsyasm.exe,vsyasm.props,vsyasm.xml.vsyasm.targets。VS2013中一般yasm.exe安裝在C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin,配置文件在目錄中C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\BuildCustomizations。

2.下載YASM,地址:http://www.tortall.net/projects/yasm/wiki/Download 安裝32位即可。

3.安裝YASM。解壓安裝包,把yasm.exe複製到 C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin,配置文件複製到目錄C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\BuildCustomizations。

4.下載libx264庫。http://download.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-20091006-2245.tar.bz2。

5.解壓x264-snapshot-20091006-2245.tar.bz,用VS2013打開。

6.libx264項目,需要編譯彙編,設置彙編工具爲YASM。

7.可以查看每一個asm文件,看看是否編譯到工程中,已經使用的編譯工具。

8.編譯libx264工程,生成成功。

9.編譯x264工程,報錯,因爲是日誌,我直接把這行註釋掉的。

10.編譯報錯,找不到x264_lookahead_init等函數。這種情況看錯誤說明是libx264.lib庫裏面沒有找到定義,而libx264.lib庫中,這個函數可能定義在.c文件,也可能定義在.asm文件中。可以用xsearch.exe工具搜索文件內容,發現有兩個.c文件有引用這個函數,打開lookahead.c找到這個函數的定義,說明庫工程編譯時,把這個.c文件忘記加入了,可能是VS工程更新滯後的原因,把文件加上,然後編譯。

 11.兩個工程重新編譯,編譯成功。

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