二:《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(¶m);
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
