jrtplib-3.9.0的编译,终于搞通了。网上搜集了很多资料,自己也调试了很久。
首先,jrtplib-3.9.0是什么不用多说吧,它是一个很牛的老外用C++写的一个开源的RTP协议库,用它可以进行数据的实时传输。RTP是实时传输协议的简称,由最新的RFC3550文档进行规范。
1、从http://research.edm.uhasselt.be/~jori/page/index.php?n=CS.Jrtplib下载最新的jrtplib-3.9.0和jthread-1.3.0。
2、从http://www.cmake.org/cmake/resources/software.html下载cmake 2.8,并安装了。
3、解压jthread-1.3.0.zip,拷贝到假设为D盘。打开cmake 2.8,如图设置好源路径D:\jthread-1.3.0和目标路径D:\jthread,然后configure,后generate,就会在D:\jthread中生成vs2008的工程了。
4、打开D:\jthread中的jthread.sln,右键工程管理视图中的INSTALL,选择重新生成。OK,在C:\Program Files\jthread中就生成了我们需要的jthread_d.lib,和相应的头文件了,再设置生成release版的jthread.lib,不用我说了吧。
接下来就是编译jrtplib-3.9.0,实在是很麻烦。
1、解压jrtplib-3.9.0.zip吧,拷到D盘。打开cmake 2.8,如图设置好源路径D:\jrtplib-3.9.0和目标路径D:\jrtplib3.9.0,然后configure,会出现很多错误啊,也不是错误,就是找不到jthread的头文件、库文件和路径之类的了。郁闷了很久,胡乱试了一下,按图中圆圈的地方自己填好路径吧,再configure一下,OK,没错了,再generate啦,就会在D:\jrtplib3.9.0中生成vs2008的工程了。
2、打开D:\jrtplib3.9.0中的jrtplib.sln,右键工程管理视图中的INSTALL,选择重新生成,又是一堆的错误,其实就是找不到jthread的头文件了,在D:\jrtplib3.9.0\src\中新建一个jthread文件夹,把C:\Program Files\jthread\include\jthread头文件都拷进去吧,再重新生成,OK啦,梦魅以求的jthread_d.lib终于在C:/Program Files/jrtplib中生成了,然后生成release版的就行了。
弄了这么久,好像不是很复杂哦,要知道这些可花了我一天时间啊,天啊!!!!!
接来就是运行jrtplib3.9.0自带的example1.cpp了。
1、本人是先把C:/Program Files/jrtplib和C:\Program Files\jthread中的头文件和库文库分别拷到一起了,就是新建一个文件夹如C:/RTP,里面再建两个include和lib,把头文件和库文件分别拷进去吧。
2、然后用VS2008新建一个空的控制台工程了,设置好目录了C:/RTP/include和C:/RTP/lib,把example1.cpp加到工程中来。调试运行,一堆链接错误。没有设置为:多线程调试 DLL (/MDd),这个是在:项目属性->c/c++->代码生成->运行时库中设置了。好,再运行,OK啦!!!
3、运行后要求,输入本端口号,输入6000回车,后是目的地址:127.0.0.1了,后是目的端口号:6000了,后是要发送的数据包个数,10吧,OK,收到了,如下图:
4、运行完后,会有两个警告信息,说jthread的调试信息不可用,这是因为我们没有把jthread_d.pdb拷到C:/RTP/lib中了,这个jthread_d.pdb是要到D:\jthread\src\DEBUG中找的,在生成的C:\Program Files\jthread\lib文件夹中是没有的。再运行,没警告了。
大功造成,后面要用好这个库,大家一起学习吧,任重道远啊!!!
如果大家觉得麻烦,可直接到这里下载我编译好的用:http://download.csdn.net/detail/jid_223/3670397。
下面再贴一下我参考的博客吧:
http://hi.baidu.com/qiaxue/blog/item/ea149345fafd4133879473fc.html#0
http://blog.csdn.net/ljbsdu/article/details/6652991
http://blog.csdn.net/aaronalan/article/details/5153604
http://leezen.blogbus.com/logs/22052259.html
http://blog.csdn.net/smilestone322/article/details/6662902
http://general.blog.51cto.com/927298/328224
http://hi.baidu.com/whuisland/blog/item/e4811b3d2c9d4404baa167e9.html
http://wmnmtm.blog.163.com/blog/static/382457142011537199240/