win7下編譯VLC

說明:該文檔詳細記錄瞭如何在32位WIN7(64位WIN7同樣適用)環境下使用VS2010編譯VLC1.1.5源碼,按照該文檔進行實際編譯時,各個文件的版本需與文檔中描述的版本一致,否則可能出現錯誤。

文末及文中附有供參考的相關鏈接,在此一併對其作者表示感謝。

 

一、準備工作

1.1下載VS工程的vlc-1.1.5-2010源碼

https://github.com/sunqueen?tab=repositories

點擊vlc-1.1.5-2010鏈接,進入下載頁面


點擊紅框中的Download ZIP,下載vlc-1.1.5-2010


解壓下載的文件,得到vlcwin.15.vs2010.NT.up.zip,再解壓一次,得到源碼文件夾,如下圖所示



 

1.2下載DirectX June2010 SDK,並安裝

http://www.microsoft.com/en-us/download/details.aspx?id=6812

點擊紅框中的鏈接,下載DirectX June2010 SDK;


 

雙擊安裝,其中用戶反饋可以選擇NO,其餘默認。

開發包會自動安裝在C:\Program Files\Microsoft DirectXSDK (June 2010)

(注:如果碰到安裝失敗,且Errorcode:S1023,請參考以下鏈接和內容)

http://blog.csdn.net/ts1030746080/article/details/8681550

錯誤原因

計算機上有安裝過更新版的Microsoft Visual C++ 2010Redistributable,打開“控制面板”的“程序和功能”,果然計算機裏之前有安裝“Microsoft Visual C++ 2010 x86 Redistributable - 1010.0.40219”,而DXSDK_Jun安裝的是“Microsoft VisualC++ 2010 x86 Redistributable - 1010.0.30319”,版本低於本機已安裝的版本,所以安裝出現S1023錯誤。

解決辦法

卸載更高的版本“Microsoft Visual C++ 2010x86 Redistributable - 1010.0.40219”,再重新安裝即可。卸載“Microsoft Visual C++ 2010x86 Redistributable - 1010.0.40219”影響不大。如果實在需要“Microsoft Visual C++ 2010x86 Redistributable - 1010.0.40219”,可在安裝完DXSDK_Jun10之後再安裝。下載頁面地址(http://www.microsoft.com/en-us/download/details.aspx?id=26999 )

1.3下載Windows SDK7

http://www.microsoft.com/en-us/download/details.aspx?id=3138

點擊紅框中的鏈接,下載SDK7


 

雙擊安裝(注:可能下載的是在線安裝包,也可以下載ISO格式文件,解壓或虛擬光驅裝載安裝)

默認安裝在C:\ProgramFiles\Microsoft SDKs\Windows\v7.1 

1.4準備DirectShow的庫文件編譯BaseClasses項目

打開如下的工程,任由轉換向導轉換。

C:\ProgramFiles\Microsoft SDKs\Windows\v7.1\Samples\multimedia\directshow\baseclasses\下的

baseclasses.sln

項目BaseClasses轉換會發生若干警告,無視。

分別在Debug/Release模式下編譯,確認以下庫文件生成:

C:\ProgramFiles\MicrosoftSDKs\Windows\v7.1\Samples\multimedia\directshow\baseclasses\Debug\strmbasd.lib

C:\ProgramFiles\MicrosoftSDKs\Windows\v7.1\Samples\multimedia\directshow\baseclasses\Release\strmbase.lib

二、設置VS環境

 

2.1設置DirectX June2010 SDK

VS2010貌似不能按照如下方法:

設置Include:Tools(工具)->Options(選項)->Projects and Solutions(項目和解決方案)->VC++Directoties(VC++目錄),在Include file(包含目錄)中加入路徑

設置Lib:Tools(工具)->Options(選項)->Projects and Solutions(項目和解決方案)->VC++Directoties(VC++目錄),在Library files(庫目錄)中加入路徑

可以按照下面的方法設置:

打開剛剛下載解壓好的vlcwin.sln解決方案,打開“屬性管理器”頁面,如圖


展開其中任意一個工程,圖中以“libplugin”爲例,展開”Debug|Win32”,雙擊Microsoft.Cpp.Win32.user,進行項目配置(注:這裏修改的實際上是全局的配置),如下圖所示:


 

在“包含目錄”中添加如下路徑,注意順序,可能會影響編譯,也可能某個路徑不需要

(爲防止出錯,可單擊該行,點右邊的下拉三角,選擇“編輯”,逐條添加即可):

C:\Program Files\Microsoft DirectX SDK (June 2010)\Include;

C:\Program Files\Microsoft SDKs\Windows\v7.1\Include;

C:\Program Files\Microsoft SDKs\Windows\v7.1\Include\gl;

C:\Program Files\Microsoft SDKs\Windows\v7.1\Samples\multimedia\directshow\baseclasses;

C:\Program Files\MicrosoftSDKs\Windows\v7.1\Samples\multimedia\directshow\common;

在“庫目錄”中添加如下路徑

C:\ProgramFiles\Microsoft DirectX SDK (June 2010)\Lib\x86;

C:\ProgramFiles\Microsoft SDKs\Windows\v7.1\Lib;

C:\ProgramFiles\MicrosoftSDKs\Windows\v7.1\Samples\multimedia\directshow\baseclasses\Debug;

[Release編譯需要將上一目錄最後的Debug改爲Release]

 

三、編譯VLC(編譯Debug版本)

 

3.1編譯vlcwin, libvlc, libvlccore,libcompat

解決方案資源管理器中,默認的啓動項應該是vlcwin,若不是,則右鍵將其設置爲啓動項,如下圖

 

選擇vlcwin,單擊右鍵,選擇Rebuild(重新生成),VS會先編譯libcompat,再編譯libccore和libclv, 最後編譯vlcwin。

(右鍵ProjectDependencies(項目依賴項)中可以看到vlcwin依賴libclv和libccore,而libvlccore依賴於libcompat)

編譯完成後在debug 目錄下可以看到編譯後的libvlc.dll, libvlccore.dll和vlcwin.exe等文件。

 

3.2編譯libplugin

解決方案資源管理器中,選擇libplugin,單擊右鍵,選擇“屬性”,彈開如下圖頁面:

 

如圖設置,將字符集改爲”未設置”

(注:默認的字符集是”Unicode”,我直接編譯,出現Error:不能識別的xxxx等錯誤。將字符集改爲”未設置”後,編譯通過,原因暫不明)

選擇libplugin,單擊右鍵,選擇“僅用於項目”->“僅生成libplugin”;

編譯完成後再debug\plugins目錄下可以看到編譯後的libplugin.dll,比較大,約30M左右。

四、運行vlc

雙擊debug目錄下的vlcwin.exe,主界面如下圖:

 

幫助->關於,如下圖


至此,Debug版本下vlc-1.1.5編譯完成。

後記:如在編譯過程中遇到本文未曾提到的問題,請自行百度或google解決。根據經驗來看,大抵都是環境配置不對所引起的。如果順利的話,恭喜!

參考鏈接:

http://blog.sina.com.cn/s/blog_b7770ea80101ge5j.html

https://forum.videolan.org/viewtopic.php?p=287019

https://forum.videolan.org/viewtopic.php?f=32&t=81793
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章