標籤:style http io color ar os sp for 檔案
最近因為各種原因,對流媒體的學習,突然中斷在了編碼這塊。今天難得靜下心來,從新拿起了代碼。
對encode這邊,因為之前雖然也接觸了,也找了兩個例子,但目前還沒真正開始,所以先從編譯x264這個庫開始吧。
找到之前下載的x264源碼庫(x264-snapshot-20130922-2245),然後將源碼複製到D:\msys\1.0\home\x264-20130922目錄下。
接著按照網上的教程,首先運行MINGW,然後切換到X264源碼路徑下;
再然後輸入:
$ ./configure --enable-shared
$ make
其中在make的時候,我這裡出現了報錯:
x264dll.c:30:13: error: conflicting types
for
‘DllMain‘
BOOL
WINAPI DllMain(
HANDLE
hinstDLL,
DWORD
fdwReason,
LPVOID
lpvReserved )
^
In file included from c:\mingw\include\windows.h:62:0,
from common/win32thread.h:29,
from common/osdep.h:207,
from common/common.h:117,
from x264dll.c:26:
c:\mingw\include\winbase.h:1051:13: note: previous declaration of
‘DllMain‘
was
here
BOOL
WINAPI DllMain(
HINSTANCE
,
DWORD
,
LPVOID
);
^
make: *** [x264dll.o] Error 1
然後我百度了下,在CSDN論壇中出現了跟我一樣的問題,有人發帖描述如下:
http://bbs.csdn.net/topics/390624451?page=1
然後我根據他們的提示,修改了D:\MinGW\include\winbase.h檔案;修改如下:
//BOOL WINAPI DllMain(HINSTANCE, DWORD, LPVOID);//default modefy by lhp-20141114 for built x264
即屏蔽了這句話,然後在繼續make,結果就沒出現錯誤了,順利成功編譯。
接著我執行:
$make install
於是就會在D:\msys\1.0\local\目錄下產生了3個目錄,分別為:bin,include,lib,這3個目錄下的檔案就是剛剛執行make install以後安裝的。
接著我們要由dll-》lib檔案,好在VS裡面調用用;
於是我接下來,運行cmd,然後在cmd裡面找到VS2010安裝環境下的lib.exe,由它來產生lib,產生過程如下:
d:\Program Files\Microsoft Visual Studio 10.0\VC\bin>LIB /machine:x86 /def:d:\\l
ibx264-138.def /out:d:\\libx264-138.lib
Microsoft (R) Library Manager Version 10.00.30319.01
Copyright (C) Microsoft Corporation. All rights reserved.
正在建立庫 d:\\libx264-138.lib 和對象 d:\\libx264-138.exp
注意:
如果在產生期間出現缺少dll,就到vs安裝環境下把相應的庫拷貝到lib.exe目錄下,就可以了,我這裡拷貝的檔案為:msobj100.dll,mspdb100.dll,mspdbcore.dll,mspdbsrv.exe;
於是整個編譯過程完成。。。
在windows下編譯x264