需要在windows下使用ortp,查了下以前ortp在vs2005下的编译,基本是自己建个工程将源码添加进去编译,看了下最新的ortp 0.16.3的代码,看到在build目录下面的win32native目录已经有工程文件还有wince的,看起来在windos应该使用起来更简单了。
环境:windows xp, vs2005,未装其他开发包。
直接打开win32native目录下的oRTP.vcproj,在项目上点击生成,屏幕下方输出了编译过程---当然不能一次成功了,好吧,一次成功就用不着本篇废话了:)
1。第一次生成,首先错误是
1>f:/rtp/ortp/ortp-0.16.3/ortp-0.16.3/include/ortp/srtp.h(23) : fatal error C1083: 无法打开包括文件:“srtp/srtp.h”: No such file or directory
将srtp.h中的#include <srtp/srtp.h>改为 #include <ortp/srtp.h>
2>f:/rtp/ortp/ortp-0.16.3/ortp-0.16.3/src/stun.c(1275) : fatal error C1083: 无法打开包括文件:“openssl/hmac.h”: No such file or directory
将stun.c中这行上面的#ifdef NOSSL前定义#define NOSSL,我不需要SSL所以直接去掉,如果有谁搞定欢迎指教。
2。第二次生成,错误会很多,主要是srtp.h和srtp.c
在srtp.c中将#ifdef HAVE_SRTP改为#ifndef HAVE_SRTP
3。第三次生成,主要是
1>LINK : fatal error LNK1181: 无法打开输入文件“Qwave.lib”
打开oRTP.vcproj找到
<Tool
Name="VCLinkerTool"
AdditionalDependencies="Qwave.lib delayimp.lib libeay32.lib Ws2_32.lib libsrtp.lib Winmm.lib libcmtd.lib"
将Qwave.lib libeay32.lib libsrtp.lib都删掉
注意,以上段落有两个,都删了。
4。第四次生成,变成了
1>oRTP.def : error LNK2001: 无法解析的外部符号 ortp_srtp_init
将oRTP.def中
ortp_srtp_init
ortp_srtp_create
ortp_srtp_dealloc
ortp_srtp_add_stream
删掉。
5。第五次生成,成功。生成oRTP.dll和众多.lib