vs2008 下编译jrtplib-3.9.0成功
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/
vs2008 下编译jrtplib-3.9.0成功的更多相关文章
- 在CUDA8.0下编译安装OpenCV3.1.0来实现GPU加速(Compiling OpenCV3.1.0 with CUDA8.0 support)
在CUDA8.0下编译安装OpenCV3.1.0 一.本人电脑配置:ubuntu 14.04, NVIDIA GTX1060. 二.编译OpenCV3.1.0前,读者需要成功安装CUDA8.0(网上有 ...
- Ubuntu16.04下编译安装OpenCV3.4.0(C++ & python)
Ubuntu16.04下编译安装OpenCV3.4.0(C++ & python) 前提是已经安装了python2,python3 1)安装各种依赖库 sudo apt-get update ...
- 【甘道夫】Win7x64环境下编译Apache Hadoop2.2.0的Eclipse小工具
目标: 编译Apache Hadoop2.2.0在win7x64环境下的Eclipse插件 环境: win7x64家庭普通版 eclipse-jee-kepler-SR1-win32-x86_64.z ...
- setlocale同mbstowcs函数的关系(VS2008下setlocale(LC_ALL, "chs")可以执行成功,BCB使用setlocale(LC_ALL, "Chinese (Simplified)_People's Republic of China"),linux上locale别名表大概在 /usr/lib/X11/locale/locale.alias)
序中,如果要将ASCII码字符串转换为宽字符(Unicode),可以利用标准C的mbstowcs函数. 微软在MSDN中有示例,如下: 然而,这段代码在处理含有汉字的字符串时就会出现问题.比如将: w ...
- 64位centos 下编译 hadoop 2.6.0 源码
64位os下为啥要编译hadoop就不解释了,百度一下就能知道原因,下面是步骤: 前提:编译源码所在的机器,必须能上网,否则建议不要尝试了 一. 下载必要的组件 a) 下载hadoop源码 (当前最新 ...
- VS2008下编译boost_1_47_0
1,boost下载 如果不想自己编译,可下载http://boostpro.com/download/boost_1_47_setup.exe,安装后,程序会提供选项供下载已经编译好的库文件,基于 ...
- VS2008下编译BOOST 1.39的ASIO库
由于全部编译BOOST库需要的时间太长,而且耗费空间,况且我只需要用ASIO库,所以就没有必要全部编译了. boost库到www.boost.org上下载. 编译很简单,假设你的boost存放的目录是 ...
- Windows下编译protobuf v3.3.0
一:概述 关于 protobuf 在此不再多说,此处记录下成功编译步骤以备日后查阅.注意:本文并不是使用cmake gui进行编译的,如果熟悉cmake gui的话,也可以使用gui进行生成编译. 二 ...
- Windows7+VS2008 下编译Subversion 1.8.3
一.需要的软件包 1.python-2.7.5.msi http://www.python.org/ 2.ActivePerl-5.8.8.822-MSWin32-x86-280952.msi h ...
随机推荐
- Linux Shell编程(17)——嵌套循环
嵌套循环就是在一个循环中还有一个循环,内部循环在外部循环体中.在外部循环的每次执行过程中都会触发内部循环,直到内部循环执行结束.外部循环执行了多少次,内部循环就完成多少次.当然,不论是外部循环或内部循 ...
- Light OJ 1032 - Fast Bit Calculations(数位DP)
题目大意: 一个数字把他看成二进制数字,数字里又会一些相邻的1,问从0到n至间所有相邻1的总和是多少? 分解成2进制数字,然后数位DP就行了. ======================== ...
- (转载)MySQL关键字GROUP BY的使用
例子: mysql> select * from employee; +------+------+-------+------+-------+----------+ | num | d_id ...
- 用Delphi直接获取bmp图片的像素
用Delphi直接获取bmp图片的像素,并存储显示出.(此像素主要用在LED上显示).希望高手能给出代码啊!! function getImagePixels(f: string): Integer; ...
- 宁波Uber优步司机奖励政策(1月18日~1月24日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...
- 下载的chm手册打不开的解决方法?
用ie或者chrome等浏览器下载文件的时候,都会给文件加上一个默认的保护,右键这个文件,打开属性对话框,然后在第一个的选项卡的安全的部分,有个解除这个保护的按钮点下然后确定保存,再打开chm文件就不 ...
- IIS7 和IIS8.0 HTTP 错误 500.19 - Internal Server Error 问题的解决方式
百度了好久,没找到解决这个问题确切的答案,我也知道肯定是权限的问题,当然,经过一番尝试之后,最终攻克了,解决之道例如以下(个人方法,能够一试): 1.找到你的配置文件所在的目录,我的是 E:\源代码\ ...
- BZOJ 1878 SDOI 2009 HH项链 树状数组 + 脱机处理
标题效果:一些珠子项链.珠具有不同的颜色.我们问了很多次有多少种不同的颜色有过一段范围. 思考:这个问题让我学会聪明的离线实践.按左端点排序问题.加工出来的位置每种颜色首次出现.每一种颜色的下一次出现 ...
- range() 函数创建并返回一个包含指定范围的元素的数组
语法 range(first,second,step) 参数 描述 first 必需.规定数组元素的最小值. second 必需.规定数组元素的最大值. step 可选.规定元素之间的步进制.默认是 ...
- android 36 线程通信
安卓中一个程序跑起来叫进程,进程中至少有一个主线程.主线程用于处理用户的触摸操作和将触摸操作事件分发给响应的控件.如果进行消耗时间操作,下载,磁盘读取文件,不润许在主线程操作,只能在工作线程操作.主线 ...