当前位置: 代码迷 >> 综合 >> jrtplib3.7.1编译调试心得体会
  详细解决方案

jrtplib3.7.1编译调试心得体会

热度:45   发布时间:2024-01-09 18:33:21.0
今天我在博客里写一篇纯技术的文章。说到技术,其实也是跟别人学的,从网上搜来的纯粹是学习和研究之用,但是由于这个过程颇费我的心机,要说说和大家分享,大家可以在这个过程中吸取教训!
   研究的项目是jrtplib3.7.1和jthread1.2.1的编译,以及jrtlib3.7.1自带实例的调试过程。
   jrtplib是real time protocol的流媒体传输的协议,在网络中特别是在视频,音频传输中广为流传就是对RFC3550的支持的RTP/RSTP协议。由于我的论文设计到VOIP方面,在媒体流上肯定会使用到RTP因此迫切的需要,但是从4月17日一直到4月24日晚上8:20分才真正的利用microsoft visual studio C++ 6.0 SP6将其调试成功,下面把详细步骤说如下:
   JRTPLIB库是一个RTP协议的开源库,使用这套库文件,我们可以创建端到端的RTP连接,实现数据的实时传输。
  RTP是实时传输协议的简称。
  压缩包可以从这里获得:http://www.bairuitech.com/upimg/soft/jrtplib-3.7.1.rar
  下载jrtplib-3.7.1.rar后,首先将其解压到一个临时文件夹中,然后开始后续工作。
  首先需要强调的是,jrtplib是一个库而不是应用程序,编译后我们获得的是.lib文件。这个文件是用来实现RTP协议的,意义和我们在写WIN32程序时用到的kernel.lib一样。
  解压后的文件夹中包含两个目录,jrtplib-3.7.1和jthread-1.2.1,打开这两个目录后我们可以看到下面又有两个同名的目录,为了后面能顺利编译,我们把同名目录下的文件全部考到上一级目录中,就是说把c:\jrtplib-3.7.1\jrtplib-3.7.1\*.* 复制到c:\jrtplib-3.7.1\。同理,把c:\jthread-1.2.1\jthread-1.2.1\*.* 复制到c:\jthread-1.2.1\
  完成上述步骤后我们就可以开始编译库文件了。
  Windows平台下强烈建议使用Visual C++6.0 VSSP6,因为本人的成功经验说明如此。
  首先编译多线程库jthread,在vc6中直接打开工作区文件jthread.dsw,改变工程设置,一个个选中source file下的文件,确保code generation下Use run-time library 为debug mulitithreaded DLL或debug mulitithreaded。然后选build就可以了,和上面一样的方法完成jrtpthread的编译。这个底下的文件比jthread多一些。
  默认产生的文件是jthread.lib和jrtplib.Lib,这两个文件分别位于两个文件夹下的debug文件夹下,将它们复制到VC6的lib文件夹下。
  完成上述工作后我们就可以开始尝试编译jrtplib附带的examples。
  创建一个新的Win32 Console 应用程序项目,添加example文件到source files文件夹中,然后添加jrtplib工程下的所有.h头文件,这里我们可以用VC6提供的一个功能偷懒:)将jrtplib项目添加到本工作区,然后将Header Files下的所有文件复制到我们创建的工程的Header Files文件夹里面。
  (英语,翻译一下上面这段,请达人看看翻的对不对,先谢过)
  (Create a new Win32 Console Application, then add the example file into the source files dictionary, add all the .h file into workspace from project jrtplib. Here we can insert the jrtplib project into workspace, copy all .h file from jrtplib/Header Files to our project/Header Files.)
  修改example.cpp文件,在文件开始添加
  #pragma comment(lib, "jrtplib.lib")
  #pragma comment(lib, "jthread.lib")
  #pragma comment(lib, "WS2_32.lib")
  检查code generationdebug mulitithreaded DLL或debug mulitithreaded,方法同上文中检查库文件的方法。
  最后就可以编译、连接、生成可执行文件了。
  Example1运行方法:
  Enter local portbase : 8888
  Enter the destination IP address:127.0.0.1
  Enter the destination port:8888
  Number of packets you wish to be send :60
  回车后可以看到程序运行:
  Sending packet 1/60
  Sending packet 2/60
  Got packet !
  运行成功。