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。