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成功的更多相关文章

  1. 在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(网上有 ...

  2. Ubuntu16.04下编译安装OpenCV3.4.0(C++ & python)

    Ubuntu16.04下编译安装OpenCV3.4.0(C++ & python) 前提是已经安装了python2,python3 1)安装各种依赖库 sudo apt-get update ...

  3. 【甘道夫】Win7x64环境下编译Apache Hadoop2.2.0的Eclipse小工具

    目标: 编译Apache Hadoop2.2.0在win7x64环境下的Eclipse插件 环境: win7x64家庭普通版 eclipse-jee-kepler-SR1-win32-x86_64.z ...

  4. 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 ...

  5. 64位centos 下编译 hadoop 2.6.0 源码

    64位os下为啥要编译hadoop就不解释了,百度一下就能知道原因,下面是步骤: 前提:编译源码所在的机器,必须能上网,否则建议不要尝试了 一. 下载必要的组件 a) 下载hadoop源码 (当前最新 ...

  6. VS2008下编译boost_1_47_0

      1,boost下载 如果不想自己编译,可下载http://boostpro.com/download/boost_1_47_setup.exe,安装后,程序会提供选项供下载已经编译好的库文件,基于 ...

  7. VS2008下编译BOOST 1.39的ASIO库

    由于全部编译BOOST库需要的时间太长,而且耗费空间,况且我只需要用ASIO库,所以就没有必要全部编译了. boost库到www.boost.org上下载. 编译很简单,假设你的boost存放的目录是 ...

  8. Windows下编译protobuf v3.3.0

    一:概述 关于 protobuf 在此不再多说,此处记录下成功编译步骤以备日后查阅.注意:本文并不是使用cmake gui进行编译的,如果熟悉cmake gui的话,也可以使用gui进行生成编译. 二 ...

  9. 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 ...

随机推荐

  1. Apache HBase RPC身份验证中间人安全措施绕过漏洞(CVE-2013-2193)

    漏洞版本: Apache Group HBase 0.94.x Apache Group HBase 0.92.x 漏洞描述: BUGTRAQ ID: 61981 CVE(CAN) ID: CVE-2 ...

  2. Maven学习(3) - Maven和Eclipse集成和构建多模块Maven项目

    最近在工作中越来越经常的用到了Maven作为项目管理和Jar包管理和构建的工具,感觉Maven的确是很好用的.而且要将Maven的功能最大发挥出来,多模块是一个很好的集成例子. 一个Maven项目包括 ...

  3. ural 1333 化平面为点计算覆盖率

    题目链接:http://acm.timus.ru/problem.aspx?space=1&num=1333 #include<cstdio> #include<cstrin ...

  4. [CF 351B]Jeff and Furik[归并排序求逆序数]

    题意: 两人游戏, J先走. 给出一个1~n的排列, J选择一对相邻数[题意!!~囧], 交换. F接着走, 扔一硬币, 若正面朝上, 随机选择一对降序排列的相邻数, 交换. 若反面朝上, 随机选择一 ...

  5. CentOS让root用户可以SSH登录

    一.说明     Solaris 10 出于安全原因,默认参数很严格,禁止root用户直接使用ssh登陆 二.处理     1.可以先用非root的帐户,登陆到ssh后,su成root     2.如 ...

  6. 关于fork有意思的两道题目

    http://www.spongeliu.com/123.html 第一题,计算下面代码理论上总共打印了多少行:(网易2011笔试题) #include #include #include int m ...

  7. 53个要点提高php效率

    用单引号代替双引号来包含字符串,这样做会更快一些.因为PHP会在双引号包围的字符串中搜寻变量,单引号则不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的“函数”(译注:PHP手册中说 ...

  8. Mina学习之Codec Filter

    为何要使用Codec Filter 1. 任何一个网络应用程序接受到消息后,都需要知道消息的开头和结束. 2. 你可以把协议解析的部分放在IoHandler,但这样就会造成业务代码和协议解析代码混淆在 ...

  9. MYSQL ERROR CODE 错误编号的意义

    mysql error code(备忘) 转1005:创建表失败 1006:创建数据库失败 1007:数据库已存在,创建数据库失败 1008:数据库不存在,删除数据库失败 1009:不能删除数据库文件 ...

  10. OC中类别、扩展、协议与托付

    类别(category)--通过使用类别,我们能够动态地为现有的类加入新方法.并且能够将类定义模块化地分不到多个相关文件里.通常仅仅在类别中定义方法. 类别,接口部分的定义,通常该文件命名为已有&qu ...