转载自http://leezen.blogbus.com/logs/22052259.html,我按这个步骤编译成功了,呵呵
研究了很多文章,自己终于搞定了,总结一下。
JRTPLIB库是一个RTP协议的开源库,使用这套库文件,我们可以创建端到端的RTP连接,实现数据的实时传输。
RTP是实时传输协议的简称。压缩包可以从这里获得:
http://www.bairuitech.com/upimg/soft/jrtplib-3.7.1.rar
或者http://research.edm.uhasselt.be/~jori/page/index.php?n=CS.Jrtplib。
下载jrtplib-3.7.1.rar后,首先将其解压到一个临时文件夹中,然后开始后续工作。
首先需要强调的是,jrtplib是一个库而不是应用程序,编译后我们获得的是.lib文件。这个文件是用来实现RTP协议的,意义和我们在写WIN32程序时用到的kernel.lib一样。
1、解压后的文件夹中包含两个目录,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/。完成上述步骤后我们就可以开始编译库文件了。
2、编译jrtplib.lib和jthread.lib需要注意VC6要求安装Vs6sp6,在编译jrtplib.lib和jthread.lib前,在project——settings——C/C++——Code generation:use run-time library中,对于debug,选择:Debug Multithreaded DLL,对于release,则选择:Multithreaded DLL。
3、首先编译jthread库,然后将jthread-1.2.1/src内的"jmutex.h"和"jthread.h"两个头文件放入jrtplib-3.7.1/src目录下,然后将jrtplib-3.7.1/src文件夹下所有头文件中的<jmutex.h>和<jthread.h>语句修改为"jmutex.h"和"jthread.h",需要修改的文件为rtpudpv4transmitter.h、rtpsession.h和rtppollthread.h。编译时注意编译方式和jthread.lib一致,并且设置路径包含jtrplib所有头文件,路径设置方法:工具--选项--目录--include files.
4、将编译生成的jthread.lib和jrtplib.lib拷贝到系统目录:C:/Program Files/Microsoft Visual Studio/VC98/Lib下。
5、那些example的编译,需要在cpp文件开头加上:
#pragma comment(lib, "jrtplib.lib")
#pragma comment(lib, "jthread.lib")
#pragma comment(lib, "WS2_32.lib")//pragma的作用自己上网查吧
编译的时候,同样选择编译选项:Debug Multithreaded DLL(对于debug);Multithreaded DLL(对于release)。
Project->Settings->Link中Object/library modules:添加jthread.lib jrtplib.lib ws2_32.lib
然后编译-链接-运行就可以了。我在链接时还出了个错,参考http://leezen.blogbus.com/logs/22052169.html。