记录live555在windows下的编译过程
准备工作:vs2017 live555源码
参考了网上很多的案例,绝大部分是用vs2017去新建工程,然后手动添加4个库和可执行文件的工程。但我觉得这样太麻烦,因为live555的源码目录下是有windows下的项目构建相关文件的,理应可以通过命令行来快速编译。好在,找到了可行的参考方案。
编译方法,参考VS2017下Live555的编译 - kaixin開訫 - 博客园
这里就不贴原博了。1.准备工作,2.环境配置,3.编译,这三步简单快速,照着做就行了。
注意第三步,是复制这一整段一次性粘贴到控制台执行,不是一次复制一行执行。
还可以省事一点,将这一段保存为批处理文件放在live目录下,然后双击执行编译。
比如保存为compeli.bat:
call "C:Program Files (x86)Microsoft Visual Studio2017CommunityCommon7Toolsvsdevcmd" -arch=x64 cd live call genWindowsMakefiles cd liveMedia del *.obj *.lib nmake /B -f liveMedia.mak cd ..groupsock del *.obj *.lib nmake /B -f groupsock.mak cd ..UsageEnvironment del *.obj *.lib nmake /B -f UsageEnvironment.mak cd ..BasicUsageEnvironment del *.obj *.lib nmake /B -f BasicUsageEnvironment.mak cd ..testProgs del *.obj *.lib nmake /B -f testProgs.mak cd ..mediaServer del *.obj *.lib nmake /B -f mediaServer.mak cd ..hlsProxy del *.obj *.lib nmake /B -f hlsProxy.mak cd ..proxyServer del *.obj *.lib nmake /B -f proxyServer.mak cd .. pause
等编译结束,不出意外的话,编译会报错,下面记录解决编译错误的过程:
错误一:fatal error C1083: 无法打开包括文件: “ifaddrs.h”: No such file or directory
解决方法:
在解压出来的live555目录下的win32config文件中添加NO_GETIFADDRS宏编译选项
COMPILE_OPTS选项后面加上-DNO_GETIFADDRS=1,如下:
COMPILE_OPTS = $(INCLUDES) $(cdebug) $(cflags) $(cvarsdll) -I. -I"$(TOOLS32)include" -DNO_OPENSSL=1 -DNO_GETIFADDRS=1
错误二:无法打开包括文件: “dirent.h”: No such file or directory
解决方法:
GitHub - tronkko/dirent: C/C++ library for retrieving information on files and directories
在上面链接下载一个兼容windows下的dirent.h头文件,放到报错的文件同目录下。
注意:这个文件是为了兼容性,并没有全部移植功能。比如如下注释:
至此,编译成功。我用的1.09版本,只遇到上面的错误。
当然如果你要单步调试,还是用vs2017手动创建工程去编译调试会比较合适。



