(轉)windows下編譯最新的x264


二:《windows下編譯最新的x264》

 X264更新的比較快,每天都有更新,但算法模塊,基本結構是沒有多大變化的。x264都是用C語言寫的包括C99,但C99語法是在VC中是沒法用的(當然有精力可以全部改成C89),生成的.a庫是也是沒法調用的,如何轉化成可用.lib庫就比較重要了。 

1下載最新的x264
http://videolan.mirror.aussiehq.net.au/x264/snapshots/解壓到d盤

2下載mingw+msys進行配置,這里有已配置好的,直接下載用就可以了
http://code.google.com/p/msys-cn/wiki/ChapterInstallation

但是這個配置好的編譯工具,沒有包含Yasm,因此,在編譯過程中會出現Found no assembler的字樣

解決方法:

下載http://yasm.tortall.net/Download.html的源碼,當前最新源碼版本是1.2.0,下載Source .tar.gz,然后解壓到D:\yasm-1.2.0

進入mingw+msys,執行msys.bat,依次執行命令

cd /d/yasm-1.2.0 (進入目錄)

./configure 回車 (執行配置文件)
make 回車 (開始編譯)
make install 回車 (安裝)
安裝后,將會在MSYS的目錄下多出一個local目錄,將此目錄下的所有文件拷貝到MSYS的目錄的mingw,我本機的目錄為:G:\VC\x264 bilud\MSYS\mingw
3 編譯x264 
進入當前x264所在d盤的目錄,執行./configure --enable-shared,然后make,即可生成x264的dll

 


4 利用VC提供的工具導出lib
下載poxports
http://download.csdn.net/source/3036251解壓到VC所在的安裝目錄,比如說
C:/Program Files(x86)/Microsoft Visual Studio 10/VC/bin,解壓以后pexports.exe拷貝至bin目錄下
導出lib庫,win7下這個dll千萬不能放上面bin的目錄下,否則會出現could not load PE image
pexports d:\\libx264-120.dll > d:\\libx264-120.def 
lib /machine:x86 /def:d:\\libx264-120.def /out:d:\\libx264-120.lib

5 測試導出的庫是否正確
拷貝新生成的庫libx264-120.lib和libx264-120.dll到新建的win32 工程下
拷貝原x264目錄下的x264.h與x264_config.h至所建的win32工程下
下載pthreadGC2.dll和stdint.h
用如下程序測試
#include <iostream>
#include <string>
#include "stdint.h"
extern "C"
{
#include "x264.h"
#include "x264_config.h"
};
using namespace std;
int main()
{
x264_param_t param;
x264_param_default(&param);
return 0;
}

 

 

from:http://niulei20012001.blog.163.com/blog/static/7514721120122605835954/

 

//

以上兩篇文章寫的不錯;

如果要應用的話,還是要用最新版本的,vc版本可以學習用;

 

關於第二篇文章,啟動名字不太好,因為隨着時間段推移,版本號會變,編譯方法可能也會變化,所以,建議在標題中或內容中添加版本號

 

這里要着重說一下第二篇文章,

1,我在按照上面的方法configure的時候出現了一個問題,關於opencl的問題,版本是:x264-snapshot-20140520-2245 ;

修改上面的configure命令為:./configure --enable-share --disable-opencl 

編譯通過;

 

2,關於lib,不需要轉化工具,直接將編譯后的文件,libx264.dll.a 修改為 libx264.lib即可;

 

 

出自:http://blog.csdn.net/chinabinlang/article/details/26452011


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM