Windows下編譯live555全過程小記

live555是一個很實用的項目,實現了rtsp服務器與客戶端的功能,作者還在維護,對於想學習這方面的人而言是一份很好的源碼。這裏介紹一下在Windows下的編譯過程。

進到源碼根目錄,先把win32config改了。將這一行:

!include    <ntwin32.mak>

註釋掉,因爲這個文件在新的VC裏沒有了,即:

#!include    <ntwin32.mak>

我使用的是VS2015,修改TOOLS32變量的值爲其安裝路徑

TOOLS32    =        D:\Program Files (x86)\Microsoft Visual Studio 14.0\VC

接着cmd進入到源碼根目錄,運行:genWindowsMakefiles,這就在各個子目錄裏,產生了.mak文件

先把四個庫(liveMedia、groupsock、BasicUsageEnvironment、UsageEnvironment)編出來。方法是:

在cmd下運行批處理文件D:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat,具體路徑是你的實際路徑。這樣保證nmake命令可用。

nmake -f 相應的名稱.mak

接着編譯live555MediaServer,進到mediaServer目錄,運行編譯命令:nmake -f mediaServer.mak

結果報錯:

         -out:live555MediaServer.exe  msvcirt.lib   live555MediaServer.obj DynamicRTSPServer.obj ../liveMedia/libliveMedia.lib ../groupsock/libgroupsock.lib  ../BasicUsageEnvironment/libBasicUsageEnvironment.lib ../UsageEnvironment/libUsageEnvironment.lib
文件名、目錄名或卷標語法不正確。
NMAKE : fatal error U1077: “-out:live555MediaServer.exe”: 返回代碼“0x1”
Stop.

這是由於註釋了這一行:!include    <ntwin32.mak>,就沒有了$(link)變量,需要把這一句:

LINK =            $(link) -out:

改爲:

LINK =            link -out:

再編譯一次,又報錯:

LINK : fatal error LNK1181: 無法打開輸入文件“msvcirt.lib”
NMAKE : fatal error U1077: “"D:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\link.EXE"”: 返回代碼“0x49d”
Stop.

這是因爲msvcirt.lib在新的VC裏面已經找不到了,將這一行:

LINK_OPTS_0 =        $(linkdebug) msvcirt.lib

改爲:

LINK_OPTS_0 =        $(linkdebug) msvcrt.lib ws2_32.lib

因爲用到socket的庫,所以還要加上ws2_32.lib,這樣就成功編譯出了live555MediaServer。

同樣的方法,可以編譯出testProgs。

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