当前位置: 首页 > news >正文

免费建手机网站网站备案修改域名ip

免费建手机网站,网站备案修改域名ip,产品经理培训哪个机构好,响应式高端网站关于开源的RTP——jrtplib的使用 首先,我向我们应该先到下面的链接网站上下载jrtplib和jthread这两个包 http://research.edm.uhasselt.be/~jori/page/index.php?nCS.Jrtplib 然后,我们要对这两个包进行编译,首先是编译jthread这个包里面的工…


关于开源的RTP——jrtplib的使用
 
首先,我向我们应该先到下面的链接网站上下载jrtplib和jthread这两个包
http://research.edm.uhasselt.be/~jori/page/index.php?n=CS.Jrtplib
 
然后,我们要对这两个包进行编译,首先是编译jthread这个包里面的工程,编译成功后(我编译了,没有问题),现在我们可以编译jrtplib了。在我们编译这个工程之前,我们要将先前编译成功后的jthread后的得到的jthread.lib和jthread目录../src下的.h文件加到jrtplib这个工程中再编译,不然会出现找不到xxx.h的错误和非法的引用等的编译或连接错误。
 
好了,当我们成功了以上的步骤后,就可以向配置directshow的baseclass那样来配置我们的编译器。
 
下面是vs 2005下一个简单的控制台工程的一部分:
关于开源的RTP——jrtplib的使用
 
首先,我向我们应该先到下面的链接网站上下载jrtplib和jthread这两个包
http://research.edm.uhasselt.be/~jori/page/index.php?n=CS.Jrtplib
 
然后,我们要对这两个包进行编译,首先是编译jthread这个包里面的工程,编译成功后(我编译了,没有问题),现在我们可以编译jrtplib了。在我们编译这个工程之前,我们要将先前编译成功后的jthread后的得到的jthread.lib和jthread目录../src下的.h文件加到jrtplib这个工程中再编译,不然会出现找不到xxx.h的错误和非法的引用等的编译或连接错误。
 
好了,当我们成功了以上的步骤后,就可以向配置directshow的baseclass那样来配置我们的编译器。
 
下面是vs 2005下一个简单的控制台工程的一部分:



关于开源的RTP——jrtplib的使用
 
首先,我向我们应该先到下面的链接网站上下载jrtplib和jthread这两个包
http://research.edm.uhasselt.be/~jori/page/index.php?n=CS.Jrtplib
 
然后,我们要对这两个包进行编译,首先是编译jthread这个包里面的工程,编译成功后(我编译了,没有问题),现在我们可以编译jrtplib了。在我们编译这个工程之前,我们要将先前编译成功后的jthread后的得到的jthread.lib和jthread目录../src下的.h文件加到jrtplib这个工程中再编译,不然会出现找不到xxx.h的错误和非法的引用等的编译或连接错误。
 
好了,当我们成功了以上的步骤后,就可以向配置directshow的baseclass那样来配置我们的编译器。
 
下面是vs 2005下一个简单的控制台工程的一部分:


关于开源的RTP——jrtplib的使用
 
首先,我向我们应该先到下面的链接网站上下载jrtplib和jthread这两个包
http://research.edm.uhasselt.be/~jori/page/index.php?n=CS.Jrtplib
 
然后,我们要对这两个包进行编译,首先是编译jthread这个包里面的工程,编译成功后(我编译了,没有问题),现在我们可以编译jrtplib了。在我们编译这个工程之前,我们要将先前编译成功后的jthread后的得到的jthread.lib和jthread目录../src下的.h文件加到jrtplib这个工程中再编译,不然会出现找不到xxx.h的错误和非法的引用等的编译或连接错误。
 
好了,当我们成功了以上的步骤后,就可以向配置directshow的baseclass那样来配置我们的编译器。
 
下面是vs 2005下一个简单的控制台工程的一部分:
关于开源的RTP——jrtplib的使用
 
首先,我向我们应该先到下面的链接网站上下载jrtplib和jthread这两个包
http://research.edm.uhasselt.be/~jori/page/index.php?n=CS.Jrtplib
 
然后,我们要对这两个包进行编译,首先是编译jthread这个包里面的工程,编译成功后(我编译了,没有问题),现在我们可以编译jrtplib了。在我们编译这个工程之前,我们要将先前编译成功后的jthread后的得到的jthread.lib和jthread目录../src下的.h文件加到jrtplib这个工程中再编译,不然会出现找不到xxx.h的错误和非法的引用等的编译或连接错误。
 
好了,当我们成功了以上的步骤后,就可以向配置directshow的baseclass那样来配置我们的编译器。
 
下面是vs 2005下一个简单的控制台工程的一部分:

关于开源的RTP——jrtplib的使用
 
首先,我向我们应该先到下面的链接网站上下载jrtplib和jthread这两个包
http://research.edm.uhasselt.be/~jori/page/index.php?n=CS.Jrtplib
 
然后,我们要对这两个包进行编译,首先是编译jthread这个包里面的工程,编译成功后(我编译了,没有问题),现在我们可以编译jrtplib了。在我们编译这个工程之前,我们要将先前编译成功后的jthread后的得到的jthread.lib和jthread目录../src下的.h文件加到jrtplib这个工程中再编译,不然会出现找不到xxx.h的错误和非法的引用等的编译或连接错误。
 
好了,当我们成功了以上的步骤后,就可以向配置directshow的baseclass那样来配置我们的编译器。
 
下面是vs 2005下一个简单的控制台工程的一部分:



关于开源的RTP——jrtplib的使用
 
首先,我向我们应该先到下面的链接网站上下载jrtplib和jthread这两个包
http://research.edm.uhasselt.be/~jori/page/index.php?n=CS.Jrtplib
 
然后,我们要对这两个包进行编译,首先是编译jthread这个包里面的工程,编译成功后(我编译了,没有问题),现在我们可以编译jrtplib了。在我们编译这个工程之前,我们要将先前编译成功后的jthread后的得到的jthread.lib和jthread目录../src下的.h文件加到jrtplib这个工程中再编译,不然会出现找不到xxx.h的错误和非法的引用等的编译或连接错误。
 
好了,当我们成功了以上的步骤后,就可以向配置directshow的baseclass那样来配置我们的编译器。
 
下面是vs 2005下一个简单的控制台工程的一部分:
[cpp]  view plain copy print ?
  1. #include"stdafx.h"  
  2. #include"rtpsession.h"  
  3. #include<iostream>  
  4. #include<stdio.h>  
  5.    
  6. usingnamespace std;  
  7.    
  8. void CheckError(int inErrNum)  
  9. {  
  10.     if(inErrNum < 0)  
  11.     {  
  12.         cout<<"Error:"<<RTPGetErrorString(inErrNum)<<endl;  
  13.         exit(-1);  
  14.     }  
  15. }  
  16.    
  17. int _tmain(int argc, _TCHAR* argv[])  
  18. {  
  19.     RTPSession sess;  
  20.    
  21.     return 0;  
  22. }  
在我们生成解决方案的时候我们会得到以下错误:
------ 已启动全部重新生成: 项目: RTPSender, 配置: Debug Win32 ------
正在删除项目“RTPSender”(配置“Debug|Win32”)的中间文件和输出文件
正在编译...
stdafx.cpp
正在编译...
RTPSender.cpp
正在编译资源清单...
正在链接...
RTPSender.obj : error LNK2019: 无法解析的外部符号"class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl RTPGetErrorString(int)" (?RTPGetErrorString@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@H@Z),该符号在函数"void __cdecl CheckError(int)" (?CheckError@@YAXH@Z) 中被引用
RTPSender.obj : error LNK2019: 无法解析的外部符号"public: virtual __thiscall RTPSession::~RTPSession(void)" (??1RTPSession@@UAE@XZ),该符号在函数_wmain 中被引用
RTPSender.obj : error LNK2019: 无法解析的外部符号"public: __thiscall RTPSession::RTPSession(class RTPMemoryManager *)" (??0RTPSession@@QAE@PAVRTPMemoryManager@@@Z),该符号在函数_wmain 中被引用
F:/Programming/AV_Programs/RTPSender/Debug/RTPSender.exe : fatal error LNK1120: 3 个无法解析的外部命令
生成日志保存在“file://f:/Programming/AV_Programs/RTPSender/RTPSender/Debug/BuildLog.htm”
RTPSender - 4 个错误,个警告
========== 全部重新生成: 0 已成功, 1 已失败, 0 已跳过==========
 
这是我们要加上 jrtplib.lib
但在我们再次生成解决方案时还会出现以下错误:
------ 已启动全部重新生成: 项目: RTPSender, 配置: Debug Win32 ------
正在删除项目“RTPSender”(配置“Debug|Win32”)的中间文件和输出文件
正在编译...
stdafx.cpp
正在编译...
RTPSender.cpp
正在编译资源清单...
正在链接...
jrtplib.lib(rtpsession.obj) : error LNK2019: 无法解析的外部符号"public: __thiscall JMutex::~JMutex(void)" (??1JMutex@@QAE@XZ),该符号在函数__unwindfunclet$??0RTPSession@@QAE@PAVRTPMemoryManager@@@Z$0 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号"public: __thiscall JMutex::~JMutex(void)" (??1JMutex@@QAE@XZ)
jrtplib.lib(rtppollthread.obj) : error LNK2001: 无法解析的外部符号"public: __thiscall JMutex::~JMutex(void)" (??1JMutex@@QAE@XZ)
jrtplib.lib(rtpsession.obj) : error LNK2019: 无法解析的外部符号"public: __thiscall JMutex::JMutex(void)" (??0JMutex@@QAE@XZ),该符号在函数"public: __thiscall RTPSession::RTPSession(class RTPMemoryManager *)" (??0RTPSession@@QAE@PAVRTPMemoryManager@@@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号"public: __thiscall JMutex::JMutex(void)" (??0JMutex@@QAE@XZ)
jrtplib.lib(rtppollthread.obj) : error LNK2001: 无法解析的外部符号"public: __thiscall JMutex::JMutex(void)" (??0JMutex@@QAE@XZ)
jrtplib.lib(rtpsession.obj) : error LNK2019: 无法解析的外部符号"public: int __thiscall JMutex::Init(void)" (?Init@JMutex@@QAEHXZ),该符号在函数"private: int __thiscall RTPSession::InternalCreate(class RTPSessionParams const &)" (?InternalCreate@RTPSession@@AAEHABVRTPSessionParams@@@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号"public: int __thiscall JMutex::Init(void)" (?Init@JMutex@@QAEHXZ)
jrtplib.lib(rtppollthread.obj) : error LNK2001: 无法解析的外部符号"public: int __thiscall JMutex::Init(void)" (?Init@JMutex@@QAEHXZ)
jrtplib.lib(rtpsession.obj) : error LNK2019: 无法解析的外部符号"public: int __thiscall JMutex::Unlock(void)" (?Unlock@JMutex@@QAEHXZ),该符号在函数"public: unsigned int __thiscall RTPSession::GetLocalSSRC(void)" (?GetLocalSSRC@RTPSession@@QAEIXZ) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号"public: int __thiscall JMutex::Unlock(void)" (?Unlock@JMutex@@QAEHXZ)
jrtplib.lib(rtppollthread.obj) : error LNK2001: 无法解析的外部符号"public: int __thiscall JMutex::Unlock(void)" (?Unlock@JMutex@@QAEHXZ)
jrtplib.lib(rtpsession.obj) : error LNK2019: 无法解析的外部符号"public: int __thiscall JMutex::Lock(void)" (?Lock@JMutex@@QAEHXZ),该符号在函数"public: unsigned int __thiscall RTPSession::GetLocalSSRC(void)" (?GetLocalSSRC@RTPSession@@QAEIXZ) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号"public: int __thiscall JMutex::Lock(void)" (?Lock@JMutex@@QAEHXZ)
jrtplib.lib(rtppollthread.obj) : error LNK2001: 无法解析的外部符号"public: int __thiscall JMutex::Lock(void)" (?Lock@JMutex@@QAEHXZ)
jrtplib.lib(rtpsession.obj) : error LNK2019: 无法解析的外部符号__imp__gethostname@8,该符号在函数"private: int __thiscall RTPSession::CreateCNAME(unsigned char *,unsigned int *,bool)" (?CreateCNAME@RTPSession@@AAEHPAEPAI_N@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号__imp__gethostname@8
jrtplib.lib(rtpsources.obj) : error LNK2019: 无法解析的外部符号__imp__ntohl@4,该符号在函数"public: unsigned int __thiscall RTCPSDESPacket::GetChunkSSRC(void)const " (?GetChunkSSRC@RTCPSDESPacket@@QBEIXZ) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号__imp__ntohl@4
jrtplib.lib(rtppacket.obj) : error LNK2001: 无法解析的外部符号__imp__ntohl@4
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__bind@12,该符号在函数"public: virtual int __thiscall RTPUDPv4Transmitter::Create(unsigned int,class RTPTransmissionParams const *)" (?Create@RTPUDPv4Transmitter@@UAEHIPBVRTPTransmissionParams@@@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__htonl@4,该符号在函数"public: virtual int __thiscall RTPUDPv4Transmitter::Create(unsigned int,class RTPTransmissionParams const *)" (?Create@RTPUDPv4Transmitter@@UAEHIPBVRTPTransmissionParams@@@Z) 中被引用
jrtplib.lib(rtcpcompoundpacketbuilder.obj) : error LNK2001: 无法解析的外部符号__imp__htonl@4
jrtplib.lib(rtppacket.obj) : error LNK2001: 无法解析的外部符号__imp__htonl@4
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__htons@4,该符号在函数"public: virtual int __thiscall RTPUDPv4Transmitter::Create(unsigned int,class RTPTransmissionParams const *)" (?Create@RTPUDPv4Transmitter@@UAEHIPBVRTPTransmissionParams@@@Z) 中被引用
jrtplib.lib(rtcpcompoundpacketbuilder.obj) : error LNK2001: 无法解析的外部符号__imp__htons@4
jrtplib.lib(rtppacket.obj) : error LNK2001: 无法解析的外部符号__imp__htons@4
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__setsockopt@20,该符号在函数"public: virtual int __thiscall RTPUDPv4Transmitter::Create(unsigned int,class RTPTransmissionParams const *)" (?Create@RTPUDPv4Transmitter@@UAEHIPBVRTPTransmissionParams@@@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__closesocket@4,该符号在函数"public: virtual int __thiscall RTPUDPv4Transmitter::Create(unsigned int,class RTPTransmissionParams const *)" (?Create@RTPUDPv4Transmitter@@UAEHIPBVRTPTransmissionParams@@@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__socket@12,该符号在函数"public: virtual int __thiscall RTPUDPv4Transmitter::Create(unsigned int,class RTPTransmissionParams const *)" (?Create@RTPUDPv4Transmitter@@UAEHIPBVRTPTransmissionParams@@@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__gethostbyaddr@12,该符号在函数"public: virtual int __thiscall RTPUDPv4Transmitter::GetLocalHostName(unsigned char *,unsigned int *)" (?GetLocalHostName@RTPUDPv4Transmitter@@UAEHPAEPAI@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__recv@16,该符号在函数"public: virtual int __thiscall RTPUDPv4Transmitter::WaitForIncomingData(class RTPTime const &,bool *)" (?WaitForIncomingData@RTPUDPv4Transmitter@@UAEHABVRTPTime@@PA_N@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号___WSAFDIsSet@8,该符号在函数"public: virtual int __thiscall RTPUDPv4Transmitter::WaitForIncomingData(class RTPTime const &,bool *)" (?WaitForIncomingData@RTPUDPv4Transmitter@@UAEHABVRTPTime@@PA_N@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__select@20,该符号在函数"public: virtual int __thiscall RTPUDPv4Transmitter::WaitForIncomingData(class RTPTime const &,bool *)" (?WaitForIncomingData@RTPUDPv4Transmitter@@UAEHABVRTPTime@@PA_N@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__sendto@24,该符号在函数"public: virtual int __thiscall RTPUDPv4Transmitter::SendRTPData(void const *,unsigned int)" (?SendRTPData@RTPUDPv4Transmitter@@UAEHPBXI@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__ntohs@4,该符号在函数"private: int __thiscall RTPUDPv4Transmitter::PollSocket(bool)" (?PollSocket@RTPUDPv4Transmitter@@AAEH_N@Z) 中被引用
jrtplib.lib(rtppacket.obj) : error LNK2001: 无法解析的外部符号__imp__ntohs@4
jrtplib.lib(rtcpcompoundpacket.obj) : error LNK2001: 无法解析的外部符号__imp__ntohs@4
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__recvfrom@24,该符号在函数"private: int __thiscall RTPUDPv4Transmitter::PollSocket(bool)" (?PollSocket@RTPUDPv4Transmitter@@AAEH_N@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__ioctlsocket@12,该符号在函数"private: int __thiscall RTPUDPv4Transmitter::PollSocket(bool)" (?PollSocket@RTPUDPv4Transmitter@@AAEH_N@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__accept@12,该符号在函数"private: int __thiscall RTPUDPv4Transmitter::CreateAbortDescriptors(void)" (?CreateAbortDescriptors@RTPUDPv4Transmitter@@AAEHXZ) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__connect@12,该符号在函数"private: int __thiscall RTPUDPv4Transmitter::CreateAbortDescriptors(void)" (?CreateAbortDescriptors@RTPUDPv4Transmitter@@AAEHXZ) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__inet_addr@4,该符号在函数"private: int __thiscall RTPUDPv4Transmitter::CreateAbortDescriptors(void)" (?CreateAbortDescriptors@RTPUDPv4Transmitter@@AAEHXZ) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__listen@8,该符号在函数"private: int __thiscall RTPUDPv4Transmitter::CreateAbortDescriptors(void)" (?CreateAbortDescriptors@RTPUDPv4Transmitter@@AAEHXZ) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__getsockname@12,该符号在函数"private: int __thiscall RTPUDPv4Transmitter::CreateAbortDescriptors(void)" (?CreateAbortDescriptors@RTPUDPv4Transmitter@@AAEHXZ) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__WSAIoctl@36,该符号在函数"private: bool __thiscall RTPUDPv4Transmitter::GetLocalIPList_Interfaces(void)" (?GetLocalIPList_Interfaces@RTPUDPv4Transmitter@@AAE_NXZ) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__gethostbyname@4,该符号在函数"private: void __thiscall RTPUDPv4Transmitter::GetLocalIPList_DNS(void)" (?GetLocalIPList_DNS@RTPUDPv4Transmitter@@AAEXXZ) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__send@16,该符号在函数"private: void __thiscall RTPUDPv4Transmitter::AbortWaitInternal(void)" (?AbortWaitInternal@RTPUDPv4Transmitter@@AAEXXZ) 中被引用
jrtplib.lib(rtppollthread.obj) : error LNK2019: 无法解析的外部符号"public: virtual __thiscall JThread::~JThread(void)" (??1JThread@@UAE@XZ),该符号在函数__unwindfunclet$??0RTPPollThread@@QAE@AAVRTPSession@@AAVRTCPScheduler@@@Z$0 中被引用
jrtplib.lib(rtppollthread.obj) : error LNK2019: 无法解析的外部符号"public: __thiscall JThread::JThread(void)" (??0JThread@@QAE@XZ),该符号在函数"public: __thiscall RTPPollThread::RTPPollThread(class RTPSession &,class RTCPScheduler &)" (??0RTPPollThread@@QAE@AAVRTPSession@@AAVRTCPScheduler@@@Z) 中被引用
jrtplib.lib(rtppollthread.obj) : error LNK2019: 无法解析的外部符号"public: int __thiscall JThread::Start(void)" (?Start@JThread@@QAEHXZ),该符号在函数"public: int __thiscall RTPPollThread::Start(class RTPTransmitter *)" (?Start@RTPPollThread@@QAEHPAVRTPTransmitter@@@Z) 中被引用
jrtplib.lib(rtppollthread.obj) : error LNK2019: 无法解析的外部符号"public: bool __thiscall JThread::IsRunning(void)" (?IsRunning@JThread@@QAE_NXZ),该符号在函数"public: int __thiscall RTPPollThread::Start(class RTPTransmitter *)" (?Start@RTPPollThread@@QAEHPAVRTPTransmitter@@@Z) 中被引用
jrtplib.lib(rtppollthread.obj) : error LNK2019: 无法解析的外部符号"public: int __thiscall JThread::Kill(void)" (?Kill@JThread@@QAEHXZ),该符号在函数"public: void __thiscall RTPPollThread::Stop(void)" (?Stop@RTPPollThread@@QAEXXZ) 中被引用
jrtplib.lib(rtppollthread.obj) : error LNK2019: 无法解析的外部符号"protected: void __thiscall JThread::ThreadStarted(void)" (?ThreadStarted@JThread@@IAEXXZ),该符号在函数"private: virtual void * __thiscall RTPPollThread::Thread(void)" (?Thread@RTPPollThread@@EAEPAXXZ) 中被引用
F:/Programming/AV_Programs/RTPSender/Debug/RTPSender.exe : fatal error LNK1120: 35 个无法解析的外部命令
生成日志保存在“file://f:/Programming/AV_Programs/RTPSender/RTPSender/Debug/BuildLog.htm”
RTPSender - 55 个错误,个警告
========== 全部重新生成: 0 已成功, 1 已失败, 0 已跳过==========
 
这是我们要加上 ws2_32.lib 和 jthread.lib这两个库,这样我们就会成功了。
到这里我们jrtplib基本配置的差不多了,当然我们可能在用特定的函数是还需要一些特定的库。


关于开源的RTP——jrtplib的使用
 
首先,我向我们应该先到下面的链接网站上下载jrtplib和jthread这两个包
http://research.edm.uhasselt.be/~jori/page/index.php?n=CS.Jrtplib
 
然后,我们要对这两个包进行编译,首先是编译jthread这个包里面的工程,编译成功后(我编译了,没有问题),现在我们可以编译jrtplib了。在我们编译这个工程之前,我们要将先前编译成功后的jthread后的得到的jthread.lib和jthread目录../src下的.h文件加到jrtplib这个工程中再编译,不然会出现找不到xxx.h的错误和非法的引用等的编译或连接错误。
 
好了,当我们成功了以上的步骤后,就可以向配置directshow的baseclass那样来配置我们的编译器。
 
下面是vs 2005下一个简单的控制台工程的一部分:
关于开源的RTP——jrtplib的使用
 
首先,我向我们应该先到下面的链接网站上下载jrtplib和jthread这两个包
http://research.edm.uhasselt.be/~jori/page/index.php?n=CS.Jrtplib
 
然后,我们要对这两个包进行编译,首先是编译jthread这个包里面的工程,编译成功后(我编译了,没有问题),现在我们可以编译jrtplib了。在我们编译这个工程之前,我们要将先前编译成功后的jthread后的得到的jthread.lib和jthread目录../src下的.h文件加到jrtplib这个工程中再编译,不然会出现找不到xxx.h的错误和非法的引用等的编译或连接错误。
 
好了,当我们成功了以上的步骤后,就可以向配置directshow的baseclass那样来配置我们的编译器。
 
下面是vs 2005下一个简单的控制台工程的一部分:



关于开源的RTP——jrtplib的使用
 
首先,我向我们应该先到下面的链接网站上下载jrtplib和jthread这两个包
http://research.edm.uhasselt.be/~jori/page/index.php?n=CS.Jrtplib
 
然后,我们要对这两个包进行编译,首先是编译jthread这个包里面的工程,编译成功后(我编译了,没有问题),现在我们可以编译jrtplib了。在我们编译这个工程之前,我们要将先前编译成功后的jthread后的得到的jthread.lib和jthread目录../src下的.h文件加到jrtplib这个工程中再编译,不然会出现找不到xxx.h的错误和非法的引用等的编译或连接错误。
 
好了,当我们成功了以上的步骤后,就可以向配置directshow的baseclass那样来配置我们的编译器。
 
下面是vs 2005下一个简单的控制台工程的一部分:


关于开源的RTP——jrtplib的使用
 
首先,我向我们应该先到下面的链接网站上下载jrtplib和jthread这两个包
http://research.edm.uhasselt.be/~jori/page/index.php?n=CS.Jrtplib
 
然后,我们要对这两个包进行编译,首先是编译jthread这个包里面的工程,编译成功后(我编译了,没有问题),现在我们可以编译jrtplib了。在我们编译这个工程之前,我们要将先前编译成功后的jthread后的得到的jthread.lib和jthread目录../src下的.h文件加到jrtplib这个工程中再编译,不然会出现找不到xxx.h的错误和非法的引用等的编译或连接错误。
 
好了,当我们成功了以上的步骤后,就可以向配置directshow的baseclass那样来配置我们的编译器。
 
下面是vs 2005下一个简单的控制台工程的一部分:
关于开源的RTP——jrtplib的使用
 
首先,我向我们应该先到下面的链接网站上下载jrtplib和jthread这两个包
http://research.edm.uhasselt.be/~jori/page/index.php?n=CS.Jrtplib
 
然后,我们要对这两个包进行编译,首先是编译jthread这个包里面的工程,编译成功后(我编译了,没有问题),现在我们可以编译jrtplib了。在我们编译这个工程之前,我们要将先前编译成功后的jthread后的得到的jthread.lib和jthread目录../src下的.h文件加到jrtplib这个工程中再编译,不然会出现找不到xxx.h的错误和非法的引用等的编译或连接错误。
 
好了,当我们成功了以上的步骤后,就可以向配置directshow的baseclass那样来配置我们的编译器。
 
下面是vs 2005下一个简单的控制台工程的一部分:

关于开源的RTP——jrtplib的使用
 
首先,我向我们应该先到下面的链接网站上下载jrtplib和jthread这两个包
http://research.edm.uhasselt.be/~jori/page/index.php?n=CS.Jrtplib
 
然后,我们要对这两个包进行编译,首先是编译jthread这个包里面的工程,编译成功后(我编译了,没有问题),现在我们可以编译jrtplib了。在我们编译这个工程之前,我们要将先前编译成功后的jthread后的得到的jthread.lib和jthread目录../src下的.h文件加到jrtplib这个工程中再编译,不然会出现找不到xxx.h的错误和非法的引用等的编译或连接错误。
 
好了,当我们成功了以上的步骤后,就可以向配置directshow的baseclass那样来配置我们的编译器。
 
下面是vs 2005下一个简单的控制台工程的一部分:

关于开源的RTP——jrtplib的使用
 
首先,我向我们应该先到下面的链接网站上下载jrtplib和jthread这两个包
http://research.edm.uhasselt.be/~jori/page/index.php?n=CS.Jrtplib
 
然后,我们要对这两个包进行编译,首先是编译jthread这个包里面的工程,编译成功后(我编译了,没有问题),现在我们可以编译jrtplib了。在我们编译这个工程之前,我们要将先前编译成功后的jthread后的得到的jthread.lib和jthread目录../src下的.h文件加到jrtplib这个工程中再编译,不然会出现找不到xxx.h的错误和非法的引用等的编译或连接错误。
 
好了,当我们成功了以上的步骤后,就可以向配置directshow的baseclass那样来配置我们的编译器。
 
下面是vs 2005下一个简单的控制台工程的一部分:
[cpp]  view plain copy print ?
  1. #include"stdafx.h"  
  2. #include"rtpsession.h"  
  3. #include<iostream>  
  4. #include<stdio.h>  
  5.    
  6. usingnamespace std;  
  7.    
  8. void CheckError(int inErrNum)  
  9. {  
  10.     if(inErrNum < 0)  
  11.     {  
  12.         cout<<"Error:"<<RTPGetErrorString(inErrNum)<<endl;  
  13.         exit(-1);  
  14.     }  
  15. }  
  16.    
  17. int _tmain(int argc, _TCHAR* argv[])  
  18. {  
  19.     RTPSession sess;  
  20.    
  21.     return 0;  
  22. }  
在我们生成解决方案的时候我们会得到以下错误:
------ 已启动全部重新生成: 项目: RTPSender, 配置: Debug Win32 ------
正在删除项目“RTPSender”(配置“Debug|Win32”)的中间文件和输出文件
正在编译...
stdafx.cpp
正在编译...
RTPSender.cpp
正在编译资源清单...
正在链接...
RTPSender.obj : error LNK2019: 无法解析的外部符号"class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl RTPGetErrorString(int)" (?RTPGetErrorString@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@H@Z),该符号在函数"void __cdecl CheckError(int)" (?CheckError@@YAXH@Z) 中被引用
RTPSender.obj : error LNK2019: 无法解析的外部符号"public: virtual __thiscall RTPSession::~RTPSession(void)" (??1RTPSession@@UAE@XZ),该符号在函数_wmain 中被引用
RTPSender.obj : error LNK2019: 无法解析的外部符号"public: __thiscall RTPSession::RTPSession(class RTPMemoryManager *)" (??0RTPSession@@QAE@PAVRTPMemoryManager@@@Z),该符号在函数_wmain 中被引用
F:/Programming/AV_Programs/RTPSender/Debug/RTPSender.exe : fatal error LNK1120: 3 个无法解析的外部命令
生成日志保存在“file://f:/Programming/AV_Programs/RTPSender/RTPSender/Debug/BuildLog.htm”
RTPSender - 4 个错误,个警告
========== 全部重新生成: 0 已成功, 1 已失败, 0 已跳过==========
 
这是我们要加上 jrtplib.lib
但在我们再次生成解决方案时还会出现以下错误:
------ 已启动全部重新生成: 项目: RTPSender, 配置: Debug Win32 ------
正在删除项目“RTPSender”(配置“Debug|Win32”)的中间文件和输出文件
正在编译...
stdafx.cpp
正在编译...
RTPSender.cpp
正在编译资源清单...
正在链接...
jrtplib.lib(rtpsession.obj) : error LNK2019: 无法解析的外部符号"public: __thiscall JMutex::~JMutex(void)" (??1JMutex@@QAE@XZ),该符号在函数__unwindfunclet$??0RTPSession@@QAE@PAVRTPMemoryManager@@@Z$0 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号"public: __thiscall JMutex::~JMutex(void)" (??1JMutex@@QAE@XZ)
jrtplib.lib(rtppollthread.obj) : error LNK2001: 无法解析的外部符号"public: __thiscall JMutex::~JMutex(void)" (??1JMutex@@QAE@XZ)
jrtplib.lib(rtpsession.obj) : error LNK2019: 无法解析的外部符号"public: __thiscall JMutex::JMutex(void)" (??0JMutex@@QAE@XZ),该符号在函数"public: __thiscall RTPSession::RTPSession(class RTPMemoryManager *)" (??0RTPSession@@QAE@PAVRTPMemoryManager@@@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号"public: __thiscall JMutex::JMutex(void)" (??0JMutex@@QAE@XZ)
jrtplib.lib(rtppollthread.obj) : error LNK2001: 无法解析的外部符号"public: __thiscall JMutex::JMutex(void)" (??0JMutex@@QAE@XZ)
jrtplib.lib(rtpsession.obj) : error LNK2019: 无法解析的外部符号"public: int __thiscall JMutex::Init(void)" (?Init@JMutex@@QAEHXZ),该符号在函数"private: int __thiscall RTPSession::InternalCreate(class RTPSessionParams const &)" (?InternalCreate@RTPSession@@AAEHABVRTPSessionParams@@@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号"public: int __thiscall JMutex::Init(void)" (?Init@JMutex@@QAEHXZ)
jrtplib.lib(rtppollthread.obj) : error LNK2001: 无法解析的外部符号"public: int __thiscall JMutex::Init(void)" (?Init@JMutex@@QAEHXZ)
jrtplib.lib(rtpsession.obj) : error LNK2019: 无法解析的外部符号"public: int __thiscall JMutex::Unlock(void)" (?Unlock@JMutex@@QAEHXZ),该符号在函数"public: unsigned int __thiscall RTPSession::GetLocalSSRC(void)" (?GetLocalSSRC@RTPSession@@QAEIXZ) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号"public: int __thiscall JMutex::Unlock(void)" (?Unlock@JMutex@@QAEHXZ)
jrtplib.lib(rtppollthread.obj) : error LNK2001: 无法解析的外部符号"public: int __thiscall JMutex::Unlock(void)" (?Unlock@JMutex@@QAEHXZ)
jrtplib.lib(rtpsession.obj) : error LNK2019: 无法解析的外部符号"public: int __thiscall JMutex::Lock(void)" (?Lock@JMutex@@QAEHXZ),该符号在函数"public: unsigned int __thiscall RTPSession::GetLocalSSRC(void)" (?GetLocalSSRC@RTPSession@@QAEIXZ) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号"public: int __thiscall JMutex::Lock(void)" (?Lock@JMutex@@QAEHXZ)
jrtplib.lib(rtppollthread.obj) : error LNK2001: 无法解析的外部符号"public: int __thiscall JMutex::Lock(void)" (?Lock@JMutex@@QAEHXZ)
jrtplib.lib(rtpsession.obj) : error LNK2019: 无法解析的外部符号__imp__gethostname@8,该符号在函数"private: int __thiscall RTPSession::CreateCNAME(unsigned char *,unsigned int *,bool)" (?CreateCNAME@RTPSession@@AAEHPAEPAI_N@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号__imp__gethostname@8
jrtplib.lib(rtpsources.obj) : error LNK2019: 无法解析的外部符号__imp__ntohl@4,该符号在函数"public: unsigned int __thiscall RTCPSDESPacket::GetChunkSSRC(void)const " (?GetChunkSSRC@RTCPSDESPacket@@QBEIXZ) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号__imp__ntohl@4
jrtplib.lib(rtppacket.obj) : error LNK2001: 无法解析的外部符号__imp__ntohl@4
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__bind@12,该符号在函数"public: virtual int __thiscall RTPUDPv4Transmitter::Create(unsigned int,class RTPTransmissionParams const *)" (?Create@RTPUDPv4Transmitter@@UAEHIPBVRTPTransmissionParams@@@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__htonl@4,该符号在函数"public: virtual int __thiscall RTPUDPv4Transmitter::Create(unsigned int,class RTPTransmissionParams const *)" (?Create@RTPUDPv4Transmitter@@UAEHIPBVRTPTransmissionParams@@@Z) 中被引用
jrtplib.lib(rtcpcompoundpacketbuilder.obj) : error LNK2001: 无法解析的外部符号__imp__htonl@4
jrtplib.lib(rtppacket.obj) : error LNK2001: 无法解析的外部符号__imp__htonl@4
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__htons@4,该符号在函数"public: virtual int __thiscall RTPUDPv4Transmitter::Create(unsigned int,class RTPTransmissionParams const *)" (?Create@RTPUDPv4Transmitter@@UAEHIPBVRTPTransmissionParams@@@Z) 中被引用
jrtplib.lib(rtcpcompoundpacketbuilder.obj) : error LNK2001: 无法解析的外部符号__imp__htons@4
jrtplib.lib(rtppacket.obj) : error LNK2001: 无法解析的外部符号__imp__htons@4
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__setsockopt@20,该符号在函数"public: virtual int __thiscall RTPUDPv4Transmitter::Create(unsigned int,class RTPTransmissionParams const *)" (?Create@RTPUDPv4Transmitter@@UAEHIPBVRTPTransmissionParams@@@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__closesocket@4,该符号在函数"public: virtual int __thiscall RTPUDPv4Transmitter::Create(unsigned int,class RTPTransmissionParams const *)" (?Create@RTPUDPv4Transmitter@@UAEHIPBVRTPTransmissionParams@@@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__socket@12,该符号在函数"public: virtual int __thiscall RTPUDPv4Transmitter::Create(unsigned int,class RTPTransmissionParams const *)" (?Create@RTPUDPv4Transmitter@@UAEHIPBVRTPTransmissionParams@@@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__gethostbyaddr@12,该符号在函数"public: virtual int __thiscall RTPUDPv4Transmitter::GetLocalHostName(unsigned char *,unsigned int *)" (?GetLocalHostName@RTPUDPv4Transmitter@@UAEHPAEPAI@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__recv@16,该符号在函数"public: virtual int __thiscall RTPUDPv4Transmitter::WaitForIncomingData(class RTPTime const &,bool *)" (?WaitForIncomingData@RTPUDPv4Transmitter@@UAEHABVRTPTime@@PA_N@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号___WSAFDIsSet@8,该符号在函数"public: virtual int __thiscall RTPUDPv4Transmitter::WaitForIncomingData(class RTPTime const &,bool *)" (?WaitForIncomingData@RTPUDPv4Transmitter@@UAEHABVRTPTime@@PA_N@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__select@20,该符号在函数"public: virtual int __thiscall RTPUDPv4Transmitter::WaitForIncomingData(class RTPTime const &,bool *)" (?WaitForIncomingData@RTPUDPv4Transmitter@@UAEHABVRTPTime@@PA_N@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__sendto@24,该符号在函数"public: virtual int __thiscall RTPUDPv4Transmitter::SendRTPData(void const *,unsigned int)" (?SendRTPData@RTPUDPv4Transmitter@@UAEHPBXI@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__ntohs@4,该符号在函数"private: int __thiscall RTPUDPv4Transmitter::PollSocket(bool)" (?PollSocket@RTPUDPv4Transmitter@@AAEH_N@Z) 中被引用
jrtplib.lib(rtppacket.obj) : error LNK2001: 无法解析的外部符号__imp__ntohs@4
jrtplib.lib(rtcpcompoundpacket.obj) : error LNK2001: 无法解析的外部符号__imp__ntohs@4
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__recvfrom@24,该符号在函数"private: int __thiscall RTPUDPv4Transmitter::PollSocket(bool)" (?PollSocket@RTPUDPv4Transmitter@@AAEH_N@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__ioctlsocket@12,该符号在函数"private: int __thiscall RTPUDPv4Transmitter::PollSocket(bool)" (?PollSocket@RTPUDPv4Transmitter@@AAEH_N@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__accept@12,该符号在函数"private: int __thiscall RTPUDPv4Transmitter::CreateAbortDescriptors(void)" (?CreateAbortDescriptors@RTPUDPv4Transmitter@@AAEHXZ) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__connect@12,该符号在函数"private: int __thiscall RTPUDPv4Transmitter::CreateAbortDescriptors(void)" (?CreateAbortDescriptors@RTPUDPv4Transmitter@@AAEHXZ) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__inet_addr@4,该符号在函数"private: int __thiscall RTPUDPv4Transmitter::CreateAbortDescriptors(void)" (?CreateAbortDescriptors@RTPUDPv4Transmitter@@AAEHXZ) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__listen@8,该符号在函数"private: int __thiscall RTPUDPv4Transmitter::CreateAbortDescriptors(void)" (?CreateAbortDescriptors@RTPUDPv4Transmitter@@AAEHXZ) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__getsockname@12,该符号在函数"private: int __thiscall RTPUDPv4Transmitter::CreateAbortDescriptors(void)" (?CreateAbortDescriptors@RTPUDPv4Transmitter@@AAEHXZ) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__WSAIoctl@36,该符号在函数"private: bool __thiscall RTPUDPv4Transmitter::GetLocalIPList_Interfaces(void)" (?GetLocalIPList_Interfaces@RTPUDPv4Transmitter@@AAE_NXZ) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__gethostbyname@4,该符号在函数"private: void __thiscall RTPUDPv4Transmitter::GetLocalIPList_DNS(void)" (?GetLocalIPList_DNS@RTPUDPv4Transmitter@@AAEXXZ) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__send@16,该符号在函数"private: void __thiscall RTPUDPv4Transmitter::AbortWaitInternal(void)" (?AbortWaitInternal@RTPUDPv4Transmitter@@AAEXXZ) 中被引用
jrtplib.lib(rtppollthread.obj) : error LNK2019: 无法解析的外部符号"public: virtual __thiscall JThread::~JThread(void)" (??1JThread@@UAE@XZ),该符号在函数__unwindfunclet$??0RTPPollThread@@QAE@AAVRTPSession@@AAVRTCPScheduler@@@Z$0 中被引用
jrtplib.lib(rtppollthread.obj) : error LNK2019: 无法解析的外部符号"public: __thiscall JThread::JThread(void)" (??0JThread@@QAE@XZ),该符号在函数"public: __thiscall RTPPollThread::RTPPollThread(class RTPSession &,class RTCPScheduler &)" (??0RTPPollThread@@QAE@AAVRTPSession@@AAVRTCPScheduler@@@Z) 中被引用
jrtplib.lib(rtppollthread.obj) : error LNK2019: 无法解析的外部符号"public: int __thiscall JThread::Start(void)" (?Start@JThread@@QAEHXZ),该符号在函数"public: int __thiscall RTPPollThread::Start(class RTPTransmitter *)" (?Start@RTPPollThread@@QAEHPAVRTPTransmitter@@@Z) 中被引用
jrtplib.lib(rtppollthread.obj) : error LNK2019: 无法解析的外部符号"public: bool __thiscall JThread::IsRunning(void)" (?IsRunning@JThread@@QAE_NXZ),该符号在函数"public: int __thiscall RTPPollThread::Start(class RTPTransmitter *)" (?Start@RTPPollThread@@QAEHPAVRTPTransmitter@@@Z) 中被引用
jrtplib.lib(rtppollthread.obj) : error LNK2019: 无法解析的外部符号"public: int __thiscall JThread::Kill(void)" (?Kill@JThread@@QAEHXZ),该符号在函数"public: void __thiscall RTPPollThread::Stop(void)" (?Stop@RTPPollThread@@QAEXXZ) 中被引用
jrtplib.lib(rtppollthread.obj) : error LNK2019: 无法解析的外部符号"protected: void __thiscall JThread::ThreadStarted(void)" (?ThreadStarted@JThread@@IAEXXZ),该符号在函数"private: virtual void * __thiscall RTPPollThread::Thread(void)" (?Thread@RTPPollThread@@EAEPAXXZ) 中被引用
F:/Programming/AV_Programs/RTPSender/Debug/RTPSender.exe : fatal error LNK1120: 35 个无法解析的外部命令
生成日志保存在“file://f:/Programming/AV_Programs/RTPSender/RTPSender/Debug/BuildLog.htm”
RTPSender - 55 个错误,个警告
========== 全部重新生成: 0 已成功, 1 已失败, 0 已跳过==========
 
这是我们要加上 ws2_32.lib 和 jthread.lib这两个库,这样我们就会成功了。
到这里我们jrtplib基本配置的差不多了,当然我们可能在用特定的函数是还需要一些特定的库。



关于开源的RTP——jrtplib的使用
 
首先,我向我们应该先到下面的链接网站上下载jrtplib和jthread这两个包
http://research.edm.uhasselt.be/~jori/page/index.php?n=CS.Jrtplib
 
然后,我们要对这两个包进行编译,首先是编译jthread这个包里面的工程,编译成功后(我编译了,没有问题),现在我们可以编译jrtplib了。在我们编译这个工程之前,我们要将先前编译成功后的jthread后的得到的jthread.lib和jthread目录../src下的.h文件加到jrtplib这个工程中再编译,不然会出现找不到xxx.h的错误和非法的引用等的编译或连接错误。
 
好了,当我们成功了以上的步骤后,就可以向配置directshow的baseclass那样来配置我们的编译器。
 
下面是vs 2005下一个简单的控制台工程的一部分:
[cpp]  view plain copy print ?
  1. #include"stdafx.h"  
  2. #include"rtpsession.h"  
  3. #include<iostream>  
  4. #include<stdio.h>  
  5.    
  6. usingnamespace std;  
  7.    
  8. void CheckError(int inErrNum)  
  9. {  
  10.     if(inErrNum < 0)  
  11.     {  
  12.         cout<<"Error:"<<RTPGetErrorString(inErrNum)<<endl;  
  13.         exit(-1);  
  14.     }  
  15. }  
  16.    
  17. int _tmain(int argc, _TCHAR* argv[])  
  18. {  
  19.     RTPSession sess;  
  20.    
  21.     return 0;  
  22. }  
在我们生成解决方案的时候我们会得到以下错误:
------ 已启动全部重新生成: 项目: RTPSender, 配置: Debug Win32 ------
正在删除项目“RTPSender”(配置“Debug|Win32”)的中间文件和输出文件
正在编译...
stdafx.cpp
正在编译...
RTPSender.cpp
正在编译资源清单...
正在链接...
RTPSender.obj : error LNK2019: 无法解析的外部符号"class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl RTPGetErrorString(int)" (?RTPGetErrorString@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@H@Z),该符号在函数"void __cdecl CheckError(int)" (?CheckError@@YAXH@Z) 中被引用
RTPSender.obj : error LNK2019: 无法解析的外部符号"public: virtual __thiscall RTPSession::~RTPSession(void)" (??1RTPSession@@UAE@XZ),该符号在函数_wmain 中被引用
RTPSender.obj : error LNK2019: 无法解析的外部符号"public: __thiscall RTPSession::RTPSession(class RTPMemoryManager *)" (??0RTPSession@@QAE@PAVRTPMemoryManager@@@Z),该符号在函数_wmain 中被引用
F:/Programming/AV_Programs/RTPSender/Debug/RTPSender.exe : fatal error LNK1120: 3 个无法解析的外部命令
生成日志保存在“file://f:/Programming/AV_Programs/RTPSender/RTPSender/Debug/BuildLog.htm”
RTPSender - 4 个错误,个警告
========== 全部重新生成: 0 已成功, 1 已失败, 0 已跳过==========
 
这是我们要加上 jrtplib.lib
但在我们再次生成解决方案时还会出现以下错误:
------ 已启动全部重新生成: 项目: RTPSender, 配置: Debug Win32 ------
正在删除项目“RTPSender”(配置“Debug|Win32”)的中间文件和输出文件
正在编译...
stdafx.cpp
正在编译...
RTPSender.cpp
正在编译资源清单...
正在链接...
jrtplib.lib(rtpsession.obj) : error LNK2019: 无法解析的外部符号"public: __thiscall JMutex::~JMutex(void)" (??1JMutex@@QAE@XZ),该符号在函数__unwindfunclet$??0RTPSession@@QAE@PAVRTPMemoryManager@@@Z$0 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号"public: __thiscall JMutex::~JMutex(void)" (??1JMutex@@QAE@XZ)
jrtplib.lib(rtppollthread.obj) : error LNK2001: 无法解析的外部符号"public: __thiscall JMutex::~JMutex(void)" (??1JMutex@@QAE@XZ)
jrtplib.lib(rtpsession.obj) : error LNK2019: 无法解析的外部符号"public: __thiscall JMutex::JMutex(void)" (??0JMutex@@QAE@XZ),该符号在函数"public: __thiscall RTPSession::RTPSession(class RTPMemoryManager *)" (??0RTPSession@@QAE@PAVRTPMemoryManager@@@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号"public: __thiscall JMutex::JMutex(void)" (??0JMutex@@QAE@XZ)
jrtplib.lib(rtppollthread.obj) : error LNK2001: 无法解析的外部符号"public: __thiscall JMutex::JMutex(void)" (??0JMutex@@QAE@XZ)
jrtplib.lib(rtpsession.obj) : error LNK2019: 无法解析的外部符号"public: int __thiscall JMutex::Init(void)" (?Init@JMutex@@QAEHXZ),该符号在函数"private: int __thiscall RTPSession::InternalCreate(class RTPSessionParams const &)" (?InternalCreate@RTPSession@@AAEHABVRTPSessionParams@@@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号"public: int __thiscall JMutex::Init(void)" (?Init@JMutex@@QAEHXZ)
jrtplib.lib(rtppollthread.obj) : error LNK2001: 无法解析的外部符号"public: int __thiscall JMutex::Init(void)" (?Init@JMutex@@QAEHXZ)
jrtplib.lib(rtpsession.obj) : error LNK2019: 无法解析的外部符号"public: int __thiscall JMutex::Unlock(void)" (?Unlock@JMutex@@QAEHXZ),该符号在函数"public: unsigned int __thiscall RTPSession::GetLocalSSRC(void)" (?GetLocalSSRC@RTPSession@@QAEIXZ) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号"public: int __thiscall JMutex::Unlock(void)" (?Unlock@JMutex@@QAEHXZ)
jrtplib.lib(rtppollthread.obj) : error LNK2001: 无法解析的外部符号"public: int __thiscall JMutex::Unlock(void)" (?Unlock@JMutex@@QAEHXZ)
jrtplib.lib(rtpsession.obj) : error LNK2019: 无法解析的外部符号"public: int __thiscall JMutex::Lock(void)" (?Lock@JMutex@@QAEHXZ),该符号在函数"public: unsigned int __thiscall RTPSession::GetLocalSSRC(void)" (?GetLocalSSRC@RTPSession@@QAEIXZ) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号"public: int __thiscall JMutex::Lock(void)" (?Lock@JMutex@@QAEHXZ)
jrtplib.lib(rtppollthread.obj) : error LNK2001: 无法解析的外部符号"public: int __thiscall JMutex::Lock(void)" (?Lock@JMutex@@QAEHXZ)
jrtplib.lib(rtpsession.obj) : error LNK2019: 无法解析的外部符号__imp__gethostname@8,该符号在函数"private: int __thiscall RTPSession::CreateCNAME(unsigned char *,unsigned int *,bool)" (?CreateCNAME@RTPSession@@AAEHPAEPAI_N@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号__imp__gethostname@8
jrtplib.lib(rtpsources.obj) : error LNK2019: 无法解析的外部符号__imp__ntohl@4,该符号在函数"public: unsigned int __thiscall RTCPSDESPacket::GetChunkSSRC(void)const " (?GetChunkSSRC@RTCPSDESPacket@@QBEIXZ) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号__imp__ntohl@4
jrtplib.lib(rtppacket.obj) : error LNK2001: 无法解析的外部符号__imp__ntohl@4
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__bind@12,该符号在函数"public: virtual int __thiscall RTPUDPv4Transmitter::Create(unsigned int,class RTPTransmissionParams const *)" (?Create@RTPUDPv4Transmitter@@UAEHIPBVRTPTransmissionParams@@@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__htonl@4,该符号在函数"public: virtual int __thiscall RTPUDPv4Transmitter::Create(unsigned int,class RTPTransmissionParams const *)" (?Create@RTPUDPv4Transmitter@@UAEHIPBVRTPTransmissionParams@@@Z) 中被引用
jrtplib.lib(rtcpcompoundpacketbuilder.obj) : error LNK2001: 无法解析的外部符号__imp__htonl@4
jrtplib.lib(rtppacket.obj) : error LNK2001: 无法解析的外部符号__imp__htonl@4
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__htons@4,该符号在函数"public: virtual int __thiscall RTPUDPv4Transmitter::Create(unsigned int,class RTPTransmissionParams const *)" (?Create@RTPUDPv4Transmitter@@UAEHIPBVRTPTransmissionParams@@@Z) 中被引用
jrtplib.lib(rtcpcompoundpacketbuilder.obj) : error LNK2001: 无法解析的外部符号__imp__htons@4
jrtplib.lib(rtppacket.obj) : error LNK2001: 无法解析的外部符号__imp__htons@4
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__setsockopt@20,该符号在函数"public: virtual int __thiscall RTPUDPv4Transmitter::Create(unsigned int,class RTPTransmissionParams const *)" (?Create@RTPUDPv4Transmitter@@UAEHIPBVRTPTransmissionParams@@@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__closesocket@4,该符号在函数"public: virtual int __thiscall RTPUDPv4Transmitter::Create(unsigned int,class RTPTransmissionParams const *)" (?Create@RTPUDPv4Transmitter@@UAEHIPBVRTPTransmissionParams@@@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__socket@12,该符号在函数"public: virtual int __thiscall RTPUDPv4Transmitter::Create(unsigned int,class RTPTransmissionParams const *)" (?Create@RTPUDPv4Transmitter@@UAEHIPBVRTPTransmissionParams@@@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__gethostbyaddr@12,该符号在函数"public: virtual int __thiscall RTPUDPv4Transmitter::GetLocalHostName(unsigned char *,unsigned int *)" (?GetLocalHostName@RTPUDPv4Transmitter@@UAEHPAEPAI@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__recv@16,该符号在函数"public: virtual int __thiscall RTPUDPv4Transmitter::WaitForIncomingData(class RTPTime const &,bool *)" (?WaitForIncomingData@RTPUDPv4Transmitter@@UAEHABVRTPTime@@PA_N@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号___WSAFDIsSet@8,该符号在函数"public: virtual int __thiscall RTPUDPv4Transmitter::WaitForIncomingData(class RTPTime const &,bool *)" (?WaitForIncomingData@RTPUDPv4Transmitter@@UAEHABVRTPTime@@PA_N@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__select@20,该符号在函数"public: virtual int __thiscall RTPUDPv4Transmitter::WaitForIncomingData(class RTPTime const &,bool *)" (?WaitForIncomingData@RTPUDPv4Transmitter@@UAEHABVRTPTime@@PA_N@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__sendto@24,该符号在函数"public: virtual int __thiscall RTPUDPv4Transmitter::SendRTPData(void const *,unsigned int)" (?SendRTPData@RTPUDPv4Transmitter@@UAEHPBXI@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__ntohs@4,该符号在函数"private: int __thiscall RTPUDPv4Transmitter::PollSocket(bool)" (?PollSocket@RTPUDPv4Transmitter@@AAEH_N@Z) 中被引用
jrtplib.lib(rtppacket.obj) : error LNK2001: 无法解析的外部符号__imp__ntohs@4
jrtplib.lib(rtcpcompoundpacket.obj) : error LNK2001: 无法解析的外部符号__imp__ntohs@4
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__recvfrom@24,该符号在函数"private: int __thiscall RTPUDPv4Transmitter::PollSocket(bool)" (?PollSocket@RTPUDPv4Transmitter@@AAEH_N@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__ioctlsocket@12,该符号在函数"private: int __thiscall RTPUDPv4Transmitter::PollSocket(bool)" (?PollSocket@RTPUDPv4Transmitter@@AAEH_N@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__accept@12,该符号在函数"private: int __thiscall RTPUDPv4Transmitter::CreateAbortDescriptors(void)" (?CreateAbortDescriptors@RTPUDPv4Transmitter@@AAEHXZ) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__connect@12,该符号在函数"private: int __thiscall RTPUDPv4Transmitter::CreateAbortDescriptors(void)" (?CreateAbortDescriptors@RTPUDPv4Transmitter@@AAEHXZ) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__inet_addr@4,该符号在函数"private: int __thiscall RTPUDPv4Transmitter::CreateAbortDescriptors(void)" (?CreateAbortDescriptors@RTPUDPv4Transmitter@@AAEHXZ) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__listen@8,该符号在函数"private: int __thiscall RTPUDPv4Transmitter::CreateAbortDescriptors(void)" (?CreateAbortDescriptors@RTPUDPv4Transmitter@@AAEHXZ) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__getsockname@12,该符号在函数"private: int __thiscall RTPUDPv4Transmitter::CreateAbortDescriptors(void)" (?CreateAbortDescriptors@RTPUDPv4Transmitter@@AAEHXZ) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__WSAIoctl@36,该符号在函数"private: bool __thiscall RTPUDPv4Transmitter::GetLocalIPList_Interfaces(void)" (?GetLocalIPList_Interfaces@RTPUDPv4Transmitter@@AAE_NXZ) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__gethostbyname@4,该符号在函数"private: void __thiscall RTPUDPv4Transmitter::GetLocalIPList_DNS(void)" (?GetLocalIPList_DNS@RTPUDPv4Transmitter@@AAEXXZ) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__send@16,该符号在函数"private: void __thiscall RTPUDPv4Transmitter::AbortWaitInternal(void)" (?AbortWaitInternal@RTPUDPv4Transmitter@@AAEXXZ) 中被引用
jrtplib.lib(rtppollthread.obj) : error LNK2019: 无法解析的外部符号"public: virtual __thiscall JThread::~JThread(void)" (??1JThread@@UAE@XZ),该符号在函数__unwindfunclet$??0RTPPollThread@@QAE@AAVRTPSession@@AAVRTCPScheduler@@@Z$0 中被引用
jrtplib.lib(rtppollthread.obj) : error LNK2019: 无法解析的外部符号"public: __thiscall JThread::JThread(void)" (??0JThread@@QAE@XZ),该符号在函数"public: __thiscall RTPPollThread::RTPPollThread(class RTPSession &,class RTCPScheduler &)" (??0RTPPollThread@@QAE@AAVRTPSession@@AAVRTCPScheduler@@@Z) 中被引用
jrtplib.lib(rtppollthread.obj) : error LNK2019: 无法解析的外部符号"public: int __thiscall JThread::Start(void)" (?Start@JThread@@QAEHXZ),该符号在函数"public: int __thiscall RTPPollThread::Start(class RTPTransmitter *)" (?Start@RTPPollThread@@QAEHPAVRTPTransmitter@@@Z) 中被引用
jrtplib.lib(rtppollthread.obj) : error LNK2019: 无法解析的外部符号"public: bool __thiscall JThread::IsRunning(void)" (?IsRunning@JThread@@QAE_NXZ),该符号在函数"public: int __thiscall RTPPollThread::Start(class RTPTransmitter *)" (?Start@RTPPollThread@@QAEHPAVRTPTransmitter@@@Z) 中被引用
jrtplib.lib(rtppollthread.obj) : error LNK2019: 无法解析的外部符号"public: int __thiscall JThread::Kill(void)" (?Kill@JThread@@QAEHXZ),该符号在函数"public: void __thiscall RTPPollThread::Stop(void)" (?Stop@RTPPollThread@@QAEXXZ) 中被引用
jrtplib.lib(rtppollthread.obj) : error LNK2019: 无法解析的外部符号"protected: void __thiscall JThread::ThreadStarted(void)" (?ThreadStarted@JThread@@IAEXXZ),该符号在函数"private: virtual void * __thiscall RTPPollThread::Thread(void)" (?Thread@RTPPollThread@@EAEPAXXZ) 中被引用
F:/Programming/AV_Programs/RTPSender/Debug/RTPSender.exe : fatal error LNK1120: 35 个无法解析的外部命令
生成日志保存在“file://f:/Programming/AV_Programs/RTPSender/RTPSender/Debug/BuildLog.htm”
RTPSender - 55 个错误,个警告
========== 全部重新生成: 0 已成功, 1 已失败, 0 已跳过==========
 
这是我们要加上 ws2_32.lib 和 jthread.lib这两个库,这样我们就会成功了。
到这里我们jrtplib基本配置的差不多了,当然我们可能在用特定的函数是还需要一些特定的库。


关于开源的RTP——jrtplib的使用
 
首先,我向我们应该先到下面的链接网站上下载jrtplib和jthread这两个包
http://research.edm.uhasselt.be/~jori/page/index.php?n=CS.Jrtplib
 
然后,我们要对这两个包进行编译,首先是编译jthread这个包里面的工程,编译成功后(我编译了,没有问题),现在我们可以编译jrtplib了。在我们编译这个工程之前,我们要将先前编译成功后的jthread后的得到的jthread.lib和jthread目录../src下的.h文件加到jrtplib这个工程中再编译,不然会出现找不到xxx.h的错误和非法的引用等的编译或连接错误。
 
好了,当我们成功了以上的步骤后,就可以向配置directshow的baseclass那样来配置我们的编译器。
 
下面是vs 2005下一个简单的控制台工程的一部分:
关于开源的RTP——jrtplib的使用
 
首先,我向我们应该先到下面的链接网站上下载jrtplib和jthread这两个包
http://research.edm.uhasselt.be/~jori/page/index.php?n=CS.Jrtplib
 
然后,我们要对这两个包进行编译,首先是编译jthread这个包里面的工程,编译成功后(我编译了,没有问题),现在我们可以编译jrtplib了。在我们编译这个工程之前,我们要将先前编译成功后的jthread后的得到的jthread.lib和jthread目录../src下的.h文件加到jrtplib这个工程中再编译,不然会出现找不到xxx.h的错误和非法的引用等的编译或连接错误。
 
好了,当我们成功了以上的步骤后,就可以向配置directshow的baseclass那样来配置我们的编译器。
 
下面是vs 2005下一个简单的控制台工程的一部分:



关于开源的RTP——jrtplib的使用
 
首先,我向我们应该先到下面的链接网站上下载jrtplib和jthread这两个包
http://research.edm.uhasselt.be/~jori/page/index.php?n=CS.Jrtplib
 
然后,我们要对这两个包进行编译,首先是编译jthread这个包里面的工程,编译成功后(我编译了,没有问题),现在我们可以编译jrtplib了。在我们编译这个工程之前,我们要将先前编译成功后的jthread后的得到的jthread.lib和jthread目录../src下的.h文件加到jrtplib这个工程中再编译,不然会出现找不到xxx.h的错误和非法的引用等的编译或连接错误。
 
好了,当我们成功了以上的步骤后,就可以向配置directshow的baseclass那样来配置我们的编译器。
 
下面是vs 2005下一个简单的控制台工程的一部分:


关于开源的RTP——jrtplib的使用
 
首先,我向我们应该先到下面的链接网站上下载jrtplib和jthread这两个包
http://research.edm.uhasselt.be/~jori/page/index.php?n=CS.Jrtplib
 
然后,我们要对这两个包进行编译,首先是编译jthread这个包里面的工程,编译成功后(我编译了,没有问题),现在我们可以编译jrtplib了。在我们编译这个工程之前,我们要将先前编译成功后的jthread后的得到的jthread.lib和jthread目录../src下的.h文件加到jrtplib这个工程中再编译,不然会出现找不到xxx.h的错误和非法的引用等的编译或连接错误。
 
好了,当我们成功了以上的步骤后,就可以向配置directshow的baseclass那样来配置我们的编译器。
 
下面是vs 2005下一个简单的控制台工程的一部分:
关于开源的RTP——jrtplib的使用
 
首先,我向我们应该先到下面的链接网站上下载jrtplib和jthread这两个包
http://research.edm.uhasselt.be/~jori/page/index.php?n=CS.Jrtplib
 
然后,我们要对这两个包进行编译,首先是编译jthread这个包里面的工程,编译成功后(我编译了,没有问题),现在我们可以编译jrtplib了。在我们编译这个工程之前,我们要将先前编译成功后的jthread后的得到的jthread.lib和jthread目录../src下的.h文件加到jrtplib这个工程中再编译,不然会出现找不到xxx.h的错误和非法的引用等的编译或连接错误。
 
好了,当我们成功了以上的步骤后,就可以向配置directshow的baseclass那样来配置我们的编译器。
 
下面是vs 2005下一个简单的控制台工程的一部分:

关于开源的RTP——jrtplib的使用
 
首先,我向我们应该先到下面的链接网站上下载jrtplib和jthread这两个包
http://research.edm.uhasselt.be/~jori/page/index.php?n=CS.Jrtplib
 
然后,我们要对这两个包进行编译,首先是编译jthread这个包里面的工程,编译成功后(我编译了,没有问题),现在我们可以编译jrtplib了。在我们编译这个工程之前,我们要将先前编译成功后的jthread后的得到的jthread.lib和jthread目录../src下的.h文件加到jrtplib这个工程中再编译,不然会出现找不到xxx.h的错误和非法的引用等的编译或连接错误。
 
好了,当我们成功了以上的步骤后,就可以向配置directshow的baseclass那样来配置我们的编译器。
 
下面是vs 2005下一个简单的控制台工程的一部分:



关于开源的RTP——jrtplib的使用
 
首先,我向我们应该先到下面的链接网站上下载jrtplib和jthread这两个包
http://research.edm.uhasselt.be/~jori/page/index.php?n=CS.Jrtplib
 
然后,我们要对这两个包进行编译,首先是编译jthread这个包里面的工程,编译成功后(我编译了,没有问题),现在我们可以编译jrtplib了。在我们编译这个工程之前,我们要将先前编译成功后的jthread后的得到的jthread.lib和jthread目录../src下的.h文件加到jrtplib这个工程中再编译,不然会出现找不到xxx.h的错误和非法的引用等的编译或连接错误。
 
好了,当我们成功了以上的步骤后,就可以向配置directshow的baseclass那样来配置我们的编译器。
 
下面是vs 2005下一个简单的控制台工程的一部分:
[cpp]  view plain copy print ?
  1. #include"stdafx.h"  
  2. #include"rtpsession.h"  
  3. #include<iostream>  
  4. #include<stdio.h>  
  5.    
  6. usingnamespace std;  
  7.    
  8. void CheckError(int inErrNum)  
  9. {  
  10.     if(inErrNum < 0)  
  11.     {  
  12.         cout<<"Error:"<<RTPGetErrorString(inErrNum)<<endl;  
  13.         exit(-1);  
  14.     }  
  15. }  
  16.    
  17. int _tmain(int argc, _TCHAR* argv[])  
  18. {  
  19.     RTPSession sess;  
  20.    
  21.     return 0;  
  22. }  
在我们生成解决方案的时候我们会得到以下错误:
------ 已启动全部重新生成: 项目: RTPSender, 配置: Debug Win32 ------
正在删除项目“RTPSender”(配置“Debug|Win32”)的中间文件和输出文件
正在编译...
stdafx.cpp
正在编译...
RTPSender.cpp
正在编译资源清单...
正在链接...
RTPSender.obj : error LNK2019: 无法解析的外部符号"class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl RTPGetErrorString(int)" (?RTPGetErrorString@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@H@Z),该符号在函数"void __cdecl CheckError(int)" (?CheckError@@YAXH@Z) 中被引用
RTPSender.obj : error LNK2019: 无法解析的外部符号"public: virtual __thiscall RTPSession::~RTPSession(void)" (??1RTPSession@@UAE@XZ),该符号在函数_wmain 中被引用
RTPSender.obj : error LNK2019: 无法解析的外部符号"public: __thiscall RTPSession::RTPSession(class RTPMemoryManager *)" (??0RTPSession@@QAE@PAVRTPMemoryManager@@@Z),该符号在函数_wmain 中被引用
F:/Programming/AV_Programs/RTPSender/Debug/RTPSender.exe : fatal error LNK1120: 3 个无法解析的外部命令
生成日志保存在“file://f:/Programming/AV_Programs/RTPSender/RTPSender/Debug/BuildLog.htm”
RTPSender - 4 个错误,个警告
========== 全部重新生成: 0 已成功, 1 已失败, 0 已跳过==========
 
这是我们要加上 jrtplib.lib
但在我们再次生成解决方案时还会出现以下错误:
------ 已启动全部重新生成: 项目: RTPSender, 配置: Debug Win32 ------
正在删除项目“RTPSender”(配置“Debug|Win32”)的中间文件和输出文件
正在编译...
stdafx.cpp
正在编译...
RTPSender.cpp
正在编译资源清单...
正在链接...
jrtplib.lib(rtpsession.obj) : error LNK2019: 无法解析的外部符号"public: __thiscall JMutex::~JMutex(void)" (??1JMutex@@QAE@XZ),该符号在函数__unwindfunclet$??0RTPSession@@QAE@PAVRTPMemoryManager@@@Z$0 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号"public: __thiscall JMutex::~JMutex(void)" (??1JMutex@@QAE@XZ)
jrtplib.lib(rtppollthread.obj) : error LNK2001: 无法解析的外部符号"public: __thiscall JMutex::~JMutex(void)" (??1JMutex@@QAE@XZ)
jrtplib.lib(rtpsession.obj) : error LNK2019: 无法解析的外部符号"public: __thiscall JMutex::JMutex(void)" (??0JMutex@@QAE@XZ),该符号在函数"public: __thiscall RTPSession::RTPSession(class RTPMemoryManager *)" (??0RTPSession@@QAE@PAVRTPMemoryManager@@@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号"public: __thiscall JMutex::JMutex(void)" (??0JMutex@@QAE@XZ)
jrtplib.lib(rtppollthread.obj) : error LNK2001: 无法解析的外部符号"public: __thiscall JMutex::JMutex(void)" (??0JMutex@@QAE@XZ)
jrtplib.lib(rtpsession.obj) : error LNK2019: 无法解析的外部符号"public: int __thiscall JMutex::Init(void)" (?Init@JMutex@@QAEHXZ),该符号在函数"private: int __thiscall RTPSession::InternalCreate(class RTPSessionParams const &)" (?InternalCreate@RTPSession@@AAEHABVRTPSessionParams@@@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号"public: int __thiscall JMutex::Init(void)" (?Init@JMutex@@QAEHXZ)
jrtplib.lib(rtppollthread.obj) : error LNK2001: 无法解析的外部符号"public: int __thiscall JMutex::Init(void)" (?Init@JMutex@@QAEHXZ)
jrtplib.lib(rtpsession.obj) : error LNK2019: 无法解析的外部符号"public: int __thiscall JMutex::Unlock(void)" (?Unlock@JMutex@@QAEHXZ),该符号在函数"public: unsigned int __thiscall RTPSession::GetLocalSSRC(void)" (?GetLocalSSRC@RTPSession@@QAEIXZ) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号"public: int __thiscall JMutex::Unlock(void)" (?Unlock@JMutex@@QAEHXZ)
jrtplib.lib(rtppollthread.obj) : error LNK2001: 无法解析的外部符号"public: int __thiscall JMutex::Unlock(void)" (?Unlock@JMutex@@QAEHXZ)
jrtplib.lib(rtpsession.obj) : error LNK2019: 无法解析的外部符号"public: int __thiscall JMutex::Lock(void)" (?Lock@JMutex@@QAEHXZ),该符号在函数"public: unsigned int __thiscall RTPSession::GetLocalSSRC(void)" (?GetLocalSSRC@RTPSession@@QAEIXZ) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号"public: int __thiscall JMutex::Lock(void)" (?Lock@JMutex@@QAEHXZ)
jrtplib.lib(rtppollthread.obj) : error LNK2001: 无法解析的外部符号"public: int __thiscall JMutex::Lock(void)" (?Lock@JMutex@@QAEHXZ)
jrtplib.lib(rtpsession.obj) : error LNK2019: 无法解析的外部符号__imp__gethostname@8,该符号在函数"private: int __thiscall RTPSession::CreateCNAME(unsigned char *,unsigned int *,bool)" (?CreateCNAME@RTPSession@@AAEHPAEPAI_N@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号__imp__gethostname@8
jrtplib.lib(rtpsources.obj) : error LNK2019: 无法解析的外部符号__imp__ntohl@4,该符号在函数"public: unsigned int __thiscall RTCPSDESPacket::GetChunkSSRC(void)const " (?GetChunkSSRC@RTCPSDESPacket@@QBEIXZ) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号__imp__ntohl@4
jrtplib.lib(rtppacket.obj) : error LNK2001: 无法解析的外部符号__imp__ntohl@4
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__bind@12,该符号在函数"public: virtual int __thiscall RTPUDPv4Transmitter::Create(unsigned int,class RTPTransmissionParams const *)" (?Create@RTPUDPv4Transmitter@@UAEHIPBVRTPTransmissionParams@@@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__htonl@4,该符号在函数"public: virtual int __thiscall RTPUDPv4Transmitter::Create(unsigned int,class RTPTransmissionParams const *)" (?Create@RTPUDPv4Transmitter@@UAEHIPBVRTPTransmissionParams@@@Z) 中被引用
jrtplib.lib(rtcpcompoundpacketbuilder.obj) : error LNK2001: 无法解析的外部符号__imp__htonl@4
jrtplib.lib(rtppacket.obj) : error LNK2001: 无法解析的外部符号__imp__htonl@4
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__htons@4,该符号在函数"public: virtual int __thiscall RTPUDPv4Transmitter::Create(unsigned int,class RTPTransmissionParams const *)" (?Create@RTPUDPv4Transmitter@@UAEHIPBVRTPTransmissionParams@@@Z) 中被引用
jrtplib.lib(rtcpcompoundpacketbuilder.obj) : error LNK2001: 无法解析的外部符号__imp__htons@4
jrtplib.lib(rtppacket.obj) : error LNK2001: 无法解析的外部符号__imp__htons@4
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__setsockopt@20,该符号在函数"public: virtual int __thiscall RTPUDPv4Transmitter::Create(unsigned int,class RTPTransmissionParams const *)" (?Create@RTPUDPv4Transmitter@@UAEHIPBVRTPTransmissionParams@@@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__closesocket@4,该符号在函数"public: virtual int __thiscall RTPUDPv4Transmitter::Create(unsigned int,class RTPTransmissionParams const *)" (?Create@RTPUDPv4Transmitter@@UAEHIPBVRTPTransmissionParams@@@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__socket@12,该符号在函数"public: virtual int __thiscall RTPUDPv4Transmitter::Create(unsigned int,class RTPTransmissionParams const *)" (?Create@RTPUDPv4Transmitter@@UAEHIPBVRTPTransmissionParams@@@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__gethostbyaddr@12,该符号在函数"public: virtual int __thiscall RTPUDPv4Transmitter::GetLocalHostName(unsigned char *,unsigned int *)" (?GetLocalHostName@RTPUDPv4Transmitter@@UAEHPAEPAI@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__recv@16,该符号在函数"public: virtual int __thiscall RTPUDPv4Transmitter::WaitForIncomingData(class RTPTime const &,bool *)" (?WaitForIncomingData@RTPUDPv4Transmitter@@UAEHABVRTPTime@@PA_N@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号___WSAFDIsSet@8,该符号在函数"public: virtual int __thiscall RTPUDPv4Transmitter::WaitForIncomingData(class RTPTime const &,bool *)" (?WaitForIncomingData@RTPUDPv4Transmitter@@UAEHABVRTPTime@@PA_N@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__select@20,该符号在函数"public: virtual int __thiscall RTPUDPv4Transmitter::WaitForIncomingData(class RTPTime const &,bool *)" (?WaitForIncomingData@RTPUDPv4Transmitter@@UAEHABVRTPTime@@PA_N@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__sendto@24,该符号在函数"public: virtual int __thiscall RTPUDPv4Transmitter::SendRTPData(void const *,unsigned int)" (?SendRTPData@RTPUDPv4Transmitter@@UAEHPBXI@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__ntohs@4,该符号在函数"private: int __thiscall RTPUDPv4Transmitter::PollSocket(bool)" (?PollSocket@RTPUDPv4Transmitter@@AAEH_N@Z) 中被引用
jrtplib.lib(rtppacket.obj) : error LNK2001: 无法解析的外部符号__imp__ntohs@4
jrtplib.lib(rtcpcompoundpacket.obj) : error LNK2001: 无法解析的外部符号__imp__ntohs@4
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__recvfrom@24,该符号在函数"private: int __thiscall RTPUDPv4Transmitter::PollSocket(bool)" (?PollSocket@RTPUDPv4Transmitter@@AAEH_N@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__ioctlsocket@12,该符号在函数"private: int __thiscall RTPUDPv4Transmitter::PollSocket(bool)" (?PollSocket@RTPUDPv4Transmitter@@AAEH_N@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__accept@12,该符号在函数"private: int __thiscall RTPUDPv4Transmitter::CreateAbortDescriptors(void)" (?CreateAbortDescriptors@RTPUDPv4Transmitter@@AAEHXZ) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__connect@12,该符号在函数"private: int __thiscall RTPUDPv4Transmitter::CreateAbortDescriptors(void)" (?CreateAbortDescriptors@RTPUDPv4Transmitter@@AAEHXZ) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__inet_addr@4,该符号在函数"private: int __thiscall RTPUDPv4Transmitter::CreateAbortDescriptors(void)" (?CreateAbortDescriptors@RTPUDPv4Transmitter@@AAEHXZ) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__listen@8,该符号在函数"private: int __thiscall RTPUDPv4Transmitter::CreateAbortDescriptors(void)" (?CreateAbortDescriptors@RTPUDPv4Transmitter@@AAEHXZ) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__getsockname@12,该符号在函数"private: int __thiscall RTPUDPv4Transmitter::CreateAbortDescriptors(void)" (?CreateAbortDescriptors@RTPUDPv4Transmitter@@AAEHXZ) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__WSAIoctl@36,该符号在函数"private: bool __thiscall RTPUDPv4Transmitter::GetLocalIPList_Interfaces(void)" (?GetLocalIPList_Interfaces@RTPUDPv4Transmitter@@AAE_NXZ) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__gethostbyname@4,该符号在函数"private: void __thiscall RTPUDPv4Transmitter::GetLocalIPList_DNS(void)" (?GetLocalIPList_DNS@RTPUDPv4Transmitter@@AAEXXZ) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__send@16,该符号在函数"private: void __thiscall RTPUDPv4Transmitter::AbortWaitInternal(void)" (?AbortWaitInternal@RTPUDPv4Transmitter@@AAEXXZ) 中被引用
jrtplib.lib(rtppollthread.obj) : error LNK2019: 无法解析的外部符号"public: virtual __thiscall JThread::~JThread(void)" (??1JThread@@UAE@XZ),该符号在函数__unwindfunclet$??0RTPPollThread@@QAE@AAVRTPSession@@AAVRTCPScheduler@@@Z$0 中被引用
jrtplib.lib(rtppollthread.obj) : error LNK2019: 无法解析的外部符号"public: __thiscall JThread::JThread(void)" (??0JThread@@QAE@XZ),该符号在函数"public: __thiscall RTPPollThread::RTPPollThread(class RTPSession &,class RTCPScheduler &)" (??0RTPPollThread@@QAE@AAVRTPSession@@AAVRTCPScheduler@@@Z) 中被引用
jrtplib.lib(rtppollthread.obj) : error LNK2019: 无法解析的外部符号"public: int __thiscall JThread::Start(void)" (?Start@JThread@@QAEHXZ),该符号在函数"public: int __thiscall RTPPollThread::Start(class RTPTransmitter *)" (?Start@RTPPollThread@@QAEHPAVRTPTransmitter@@@Z) 中被引用
jrtplib.lib(rtppollthread.obj) : error LNK2019: 无法解析的外部符号"public: bool __thiscall JThread::IsRunning(void)" (?IsRunning@JThread@@QAE_NXZ),该符号在函数"public: int __thiscall RTPPollThread::Start(class RTPTransmitter *)" (?Start@RTPPollThread@@QAEHPAVRTPTransmitter@@@Z) 中被引用
jrtplib.lib(rtppollthread.obj) : error LNK2019: 无法解析的外部符号"public: int __thiscall JThread::Kill(void)" (?Kill@JThread@@QAEHXZ),该符号在函数"public: void __thiscall RTPPollThread::Stop(void)" (?Stop@RTPPollThread@@QAEXXZ) 中被引用
jrtplib.lib(rtppollthread.obj) : error LNK2019: 无法解析的外部符号"protected: void __thiscall JThread::ThreadStarted(void)" (?ThreadStarted@JThread@@IAEXXZ),该符号在函数"private: virtual void * __thiscall RTPPollThread::Thread(void)" (?Thread@RTPPollThread@@EAEPAXXZ) 中被引用
F:/Programming/AV_Programs/RTPSender/Debug/RTPSender.exe : fatal error LNK1120: 35 个无法解析的外部命令
生成日志保存在“file://f:/Programming/AV_Programs/RTPSender/RTPSender/Debug/BuildLog.htm”
RTPSender - 55 个错误,个警告
========== 全部重新生成: 0 已成功, 1 已失败, 0 已跳过==========
 
这是我们要加上 ws2_32.lib 和 jthread.lib这两个库,这样我们就会成功了。
到这里我们jrtplib基本配置的差不多了,当然我们可能在用特定的函数是还需要一些特定的库。


关于开源的RTP——jrtplib的使用
 
首先,我向我们应该先到下面的链接网站上下载jrtplib和jthread这两个包
http://research.edm.uhasselt.be/~jori/page/index.php?n=CS.Jrtplib
 
然后,我们要对这两个包进行编译,首先是编译jthread这个包里面的工程,编译成功后(我编译了,没有问题),现在我们可以编译jrtplib了。在我们编译这个工程之前,我们要将先前编译成功后的jthread后的得到的jthread.lib和jthread目录../src下的.h文件加到jrtplib这个工程中再编译,不然会出现找不到xxx.h的错误和非法的引用等的编译或连接错误。
 
好了,当我们成功了以上的步骤后,就可以向配置directshow的baseclass那样来配置我们的编译器。
 
下面是vs 2005下一个简单的控制台工程的一部分:
关于开源的RTP——jrtplib的使用
 
首先,我向我们应该先到下面的链接网站上下载jrtplib和jthread这两个包
http://research.edm.uhasselt.be/~jori/page/index.php?n=CS.Jrtplib
 
然后,我们要对这两个包进行编译,首先是编译jthread这个包里面的工程,编译成功后(我编译了,没有问题),现在我们可以编译jrtplib了。在我们编译这个工程之前,我们要将先前编译成功后的jthread后的得到的jthread.lib和jthread目录../src下的.h文件加到jrtplib这个工程中再编译,不然会出现找不到xxx.h的错误和非法的引用等的编译或连接错误。
 
好了,当我们成功了以上的步骤后,就可以向配置directshow的baseclass那样来配置我们的编译器。
 
下面是vs 2005下一个简单的控制台工程的一部分:



关于开源的RTP——jrtplib的使用
 
首先,我向我们应该先到下面的链接网站上下载jrtplib和jthread这两个包
http://research.edm.uhasselt.be/~jori/page/index.php?n=CS.Jrtplib
 
然后,我们要对这两个包进行编译,首先是编译jthread这个包里面的工程,编译成功后(我编译了,没有问题),现在我们可以编译jrtplib了。在我们编译这个工程之前,我们要将先前编译成功后的jthread后的得到的jthread.lib和jthread目录../src下的.h文件加到jrtplib这个工程中再编译,不然会出现找不到xxx.h的错误和非法的引用等的编译或连接错误。
 
好了,当我们成功了以上的步骤后,就可以向配置directshow的baseclass那样来配置我们的编译器。
 
下面是vs 2005下一个简单的控制台工程的一部分:


关于开源的RTP——jrtplib的使用
 
首先,我向我们应该先到下面的链接网站上下载jrtplib和jthread这两个包
http://research.edm.uhasselt.be/~jori/page/index.php?n=CS.Jrtplib
 
然后,我们要对这两个包进行编译,首先是编译jthread这个包里面的工程,编译成功后(我编译了,没有问题),现在我们可以编译jrtplib了。在我们编译这个工程之前,我们要将先前编译成功后的jthread后的得到的jthread.lib和jthread目录../src下的.h文件加到jrtplib这个工程中再编译,不然会出现找不到xxx.h的错误和非法的引用等的编译或连接错误。
 
好了,当我们成功了以上的步骤后,就可以向配置directshow的baseclass那样来配置我们的编译器。
 
下面是vs 2005下一个简单的控制台工程的一部分:
关于开源的RTP——jrtplib的使用
 
首先,我向我们应该先到下面的链接网站上下载jrtplib和jthread这两个包
http://research.edm.uhasselt.be/~jori/page/index.php?n=CS.Jrtplib
 
然后,我们要对这两个包进行编译,首先是编译jthread这个包里面的工程,编译成功后(我编译了,没有问题),现在我们可以编译jrtplib了。在我们编译这个工程之前,我们要将先前编译成功后的jthread后的得到的jthread.lib和jthread目录../src下的.h文件加到jrtplib这个工程中再编译,不然会出现找不到xxx.h的错误和非法的引用等的编译或连接错误。
 
好了,当我们成功了以上的步骤后,就可以向配置directshow的baseclass那样来配置我们的编译器。
 
下面是vs 2005下一个简单的控制台工程的一部分:
关于开源的RTP——jrtplib的使用
 
首先,我向我们应该先到下面的链接网站上下载jrtplib和jthread这两个包
http://research.edm.uhasselt.be/~jori/page/index.php?n=CS.Jrtplib
 
然后,我们要对这两个包进行编译,首先是编译jthread这个包里面的工程,编译成功后(我编译了,没有问题),现在我们可以编译jrtplib了。在我们编译这个工程之前,我们要将先前编译成功后的jthread后的得到的jthread.lib和jthread目录../src下的.h文件加到jrtplib这个工程中再编译,不然会出现找不到xxx.h的错误和非法的引用等的编译或连接错误。
 
好了,当我们成功了以上的步骤后,就可以向配置directshow的baseclass那样来配置我们的编译器。
 
下面是vs 2005下一个简单的控制台工程的一部分:
关于开源的RTP——jrtplib的使用
 
首先,我向我们应该先到下面的链接网站上下载jrtplib和jthread这两个包
http://research.edm.uhasselt.be/~jori/page/index.php?n=CS.Jrtplib
 
然后,我们要对这两个包进行编译,首先是编译jthread这个包里面的工程,编译成功后(我编译了,没有问题),现在我们可以编译jrtplib了。在我们编译这个工程之前,我们要将先前编译成功后的jthread后的得到的jthread.lib和jthread目录../src下的.h文件加到jrtplib这个工程中再编译,不然会出现找不到xxx.h的错误和非法的引用等的编译或连接错误。
 
好了,当我们成功了以上的步骤后,就可以向配置directshow的baseclass那样来配置我们的编译器。
 
下面是vs 2005下一个简单的控制台工程的一部分:
[cpp]  view plain copy print ?
  1. #include"stdafx.h"  
  2. #include"rtpsession.h"  
  3. #include<iostream>  
  4. #include<stdio.h>  
  5.    
  6. usingnamespace std;  
  7.    
  8. void CheckError(int inErrNum)  
  9. {  
  10.     if(inErrNum < 0)  
  11.     {  
  12.         cout<<"Error:"<<RTPGetErrorString(inErrNum)<<endl;  
  13.         exit(-1);  
  14.     }  
  15. }  
  16.    
  17. int _tmain(int argc, _TCHAR* argv[])  
  18. {  
  19.     RTPSession sess;  
  20.    
  21.     return 0;  
  22. }  
在我们生成解决方案的时候我们会得到以下错误:
------ 已启动全部重新生成: 项目: RTPSender, 配置: Debug Win32 ------
正在删除项目“RTPSender”(配置“Debug|Win32”)的中间文件和输出文件
正在编译...
stdafx.cpp
正在编译...
RTPSender.cpp
正在编译资源清单...
正在链接...
RTPSender.obj : error LNK2019: 无法解析的外部符号"class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl RTPGetErrorString(int)" (?RTPGetErrorString@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@H@Z),该符号在函数"void __cdecl CheckError(int)" (?CheckError@@YAXH@Z) 中被引用
RTPSender.obj : error LNK2019: 无法解析的外部符号"public: virtual __thiscall RTPSession::~RTPSession(void)" (??1RTPSession@@UAE@XZ),该符号在函数_wmain 中被引用
RTPSender.obj : error LNK2019: 无法解析的外部符号"public: __thiscall RTPSession::RTPSession(class RTPMemoryManager *)" (??0RTPSession@@QAE@PAVRTPMemoryManager@@@Z),该符号在函数_wmain 中被引用
F:/Programming/AV_Programs/RTPSender/Debug/RTPSender.exe : fatal error LNK1120: 3 个无法解析的外部命令
生成日志保存在“file://f:/Programming/AV_Programs/RTPSender/RTPSender/Debug/BuildLog.htm”
RTPSender - 4 个错误,个警告
========== 全部重新生成: 0 已成功, 1 已失败, 0 已跳过==========
 
这是我们要加上 jrtplib.lib
但在我们再次生成解决方案时还会出现以下错误:
------ 已启动全部重新生成: 项目: RTPSender, 配置: Debug Win32 ------
正在删除项目“RTPSender”(配置“Debug|Win32”)的中间文件和输出文件
正在编译...
stdafx.cpp
正在编译...
RTPSender.cpp
正在编译资源清单...
正在链接...
jrtplib.lib(rtpsession.obj) : error LNK2019: 无法解析的外部符号"public: __thiscall JMutex::~JMutex(void)" (??1JMutex@@QAE@XZ),该符号在函数__unwindfunclet$??0RTPSession@@QAE@PAVRTPMemoryManager@@@Z$0 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号"public: __thiscall JMutex::~JMutex(void)" (??1JMutex@@QAE@XZ)
jrtplib.lib(rtppollthread.obj) : error LNK2001: 无法解析的外部符号"public: __thiscall JMutex::~JMutex(void)" (??1JMutex@@QAE@XZ)
jrtplib.lib(rtpsession.obj) : error LNK2019: 无法解析的外部符号"public: __thiscall JMutex::JMutex(void)" (??0JMutex@@QAE@XZ),该符号在函数"public: __thiscall RTPSession::RTPSession(class RTPMemoryManager *)" (??0RTPSession@@QAE@PAVRTPMemoryManager@@@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号"public: __thiscall JMutex::JMutex(void)" (??0JMutex@@QAE@XZ)
jrtplib.lib(rtppollthread.obj) : error LNK2001: 无法解析的外部符号"public: __thiscall JMutex::JMutex(void)" (??0JMutex@@QAE@XZ)
jrtplib.lib(rtpsession.obj) : error LNK2019: 无法解析的外部符号"public: int __thiscall JMutex::Init(void)" (?Init@JMutex@@QAEHXZ),该符号在函数"private: int __thiscall RTPSession::InternalCreate(class RTPSessionParams const &)" (?InternalCreate@RTPSession@@AAEHABVRTPSessionParams@@@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号"public: int __thiscall JMutex::Init(void)" (?Init@JMutex@@QAEHXZ)
jrtplib.lib(rtppollthread.obj) : error LNK2001: 无法解析的外部符号"public: int __thiscall JMutex::Init(void)" (?Init@JMutex@@QAEHXZ)
jrtplib.lib(rtpsession.obj) : error LNK2019: 无法解析的外部符号"public: int __thiscall JMutex::Unlock(void)" (?Unlock@JMutex@@QAEHXZ),该符号在函数"public: unsigned int __thiscall RTPSession::GetLocalSSRC(void)" (?GetLocalSSRC@RTPSession@@QAEIXZ) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号"public: int __thiscall JMutex::Unlock(void)" (?Unlock@JMutex@@QAEHXZ)
jrtplib.lib(rtppollthread.obj) : error LNK2001: 无法解析的外部符号"public: int __thiscall JMutex::Unlock(void)" (?Unlock@JMutex@@QAEHXZ)
jrtplib.lib(rtpsession.obj) : error LNK2019: 无法解析的外部符号"public: int __thiscall JMutex::Lock(void)" (?Lock@JMutex@@QAEHXZ),该符号在函数"public: unsigned int __thiscall RTPSession::GetLocalSSRC(void)" (?GetLocalSSRC@RTPSession@@QAEIXZ) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号"public: int __thiscall JMutex::Lock(void)" (?Lock@JMutex@@QAEHXZ)
jrtplib.lib(rtppollthread.obj) : error LNK2001: 无法解析的外部符号"public: int __thiscall JMutex::Lock(void)" (?Lock@JMutex@@QAEHXZ)
jrtplib.lib(rtpsession.obj) : error LNK2019: 无法解析的外部符号__imp__gethostname@8,该符号在函数"private: int __thiscall RTPSession::CreateCNAME(unsigned char *,unsigned int *,bool)" (?CreateCNAME@RTPSession@@AAEHPAEPAI_N@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号__imp__gethostname@8
jrtplib.lib(rtpsources.obj) : error LNK2019: 无法解析的外部符号__imp__ntohl@4,该符号在函数"public: unsigned int __thiscall RTCPSDESPacket::GetChunkSSRC(void)const " (?GetChunkSSRC@RTCPSDESPacket@@QBEIXZ) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号__imp__ntohl@4
jrtplib.lib(rtppacket.obj) : error LNK2001: 无法解析的外部符号__imp__ntohl@4
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__bind@12,该符号在函数"public: virtual int __thiscall RTPUDPv4Transmitter::Create(unsigned int,class RTPTransmissionParams const *)" (?Create@RTPUDPv4Transmitter@@UAEHIPBVRTPTransmissionParams@@@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__htonl@4,该符号在函数"public: virtual int __thiscall RTPUDPv4Transmitter::Create(unsigned int,class RTPTransmissionParams const *)" (?Create@RTPUDPv4Transmitter@@UAEHIPBVRTPTransmissionParams@@@Z) 中被引用
jrtplib.lib(rtcpcompoundpacketbuilder.obj) : error LNK2001: 无法解析的外部符号__imp__htonl@4
jrtplib.lib(rtppacket.obj) : error LNK2001: 无法解析的外部符号__imp__htonl@4
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__htons@4,该符号在函数"public: virtual int __thiscall RTPUDPv4Transmitter::Create(unsigned int,class RTPTransmissionParams const *)" (?Create@RTPUDPv4Transmitter@@UAEHIPBVRTPTransmissionParams@@@Z) 中被引用
jrtplib.lib(rtcpcompoundpacketbuilder.obj) : error LNK2001: 无法解析的外部符号__imp__htons@4
jrtplib.lib(rtppacket.obj) : error LNK2001: 无法解析的外部符号__imp__htons@4
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__setsockopt@20,该符号在函数"public: virtual int __thiscall RTPUDPv4Transmitter::Create(unsigned int,class RTPTransmissionParams const *)" (?Create@RTPUDPv4Transmitter@@UAEHIPBVRTPTransmissionParams@@@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__closesocket@4,该符号在函数"public: virtual int __thiscall RTPUDPv4Transmitter::Create(unsigned int,class RTPTransmissionParams const *)" (?Create@RTPUDPv4Transmitter@@UAEHIPBVRTPTransmissionParams@@@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__socket@12,该符号在函数"public: virtual int __thiscall RTPUDPv4Transmitter::Create(unsigned int,class RTPTransmissionParams const *)" (?Create@RTPUDPv4Transmitter@@UAEHIPBVRTPTransmissionParams@@@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__gethostbyaddr@12,该符号在函数"public: virtual int __thiscall RTPUDPv4Transmitter::GetLocalHostName(unsigned char *,unsigned int *)" (?GetLocalHostName@RTPUDPv4Transmitter@@UAEHPAEPAI@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__recv@16,该符号在函数"public: virtual int __thiscall RTPUDPv4Transmitter::WaitForIncomingData(class RTPTime const &,bool *)" (?WaitForIncomingData@RTPUDPv4Transmitter@@UAEHABVRTPTime@@PA_N@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号___WSAFDIsSet@8,该符号在函数"public: virtual int __thiscall RTPUDPv4Transmitter::WaitForIncomingData(class RTPTime const &,bool *)" (?WaitForIncomingData@RTPUDPv4Transmitter@@UAEHABVRTPTime@@PA_N@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__select@20,该符号在函数"public: virtual int __thiscall RTPUDPv4Transmitter::WaitForIncomingData(class RTPTime const &,bool *)" (?WaitForIncomingData@RTPUDPv4Transmitter@@UAEHABVRTPTime@@PA_N@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__sendto@24,该符号在函数"public: virtual int __thiscall RTPUDPv4Transmitter::SendRTPData(void const *,unsigned int)" (?SendRTPData@RTPUDPv4Transmitter@@UAEHPBXI@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__ntohs@4,该符号在函数"private: int __thiscall RTPUDPv4Transmitter::PollSocket(bool)" (?PollSocket@RTPUDPv4Transmitter@@AAEH_N@Z) 中被引用
jrtplib.lib(rtppacket.obj) : error LNK2001: 无法解析的外部符号__imp__ntohs@4
jrtplib.lib(rtcpcompoundpacket.obj) : error LNK2001: 无法解析的外部符号__imp__ntohs@4
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__recvfrom@24,该符号在函数"private: int __thiscall RTPUDPv4Transmitter::PollSocket(bool)" (?PollSocket@RTPUDPv4Transmitter@@AAEH_N@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__ioctlsocket@12,该符号在函数"private: int __thiscall RTPUDPv4Transmitter::PollSocket(bool)" (?PollSocket@RTPUDPv4Transmitter@@AAEH_N@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__accept@12,该符号在函数"private: int __thiscall RTPUDPv4Transmitter::CreateAbortDescriptors(void)" (?CreateAbortDescriptors@RTPUDPv4Transmitter@@AAEHXZ) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__connect@12,该符号在函数"private: int __thiscall RTPUDPv4Transmitter::CreateAbortDescriptors(void)" (?CreateAbortDescriptors@RTPUDPv4Transmitter@@AAEHXZ) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__inet_addr@4,该符号在函数"private: int __thiscall RTPUDPv4Transmitter::CreateAbortDescriptors(void)" (?CreateAbortDescriptors@RTPUDPv4Transmitter@@AAEHXZ) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__listen@8,该符号在函数"private: int __thiscall RTPUDPv4Transmitter::CreateAbortDescriptors(void)" (?CreateAbortDescriptors@RTPUDPv4Transmitter@@AAEHXZ) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__getsockname@12,该符号在函数"private: int __thiscall RTPUDPv4Transmitter::CreateAbortDescriptors(void)" (?CreateAbortDescriptors@RTPUDPv4Transmitter@@AAEHXZ) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__WSAIoctl@36,该符号在函数"private: bool __thiscall RTPUDPv4Transmitter::GetLocalIPList_Interfaces(void)" (?GetLocalIPList_Interfaces@RTPUDPv4Transmitter@@AAE_NXZ) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__gethostbyname@4,该符号在函数"private: void __thiscall RTPUDPv4Transmitter::GetLocalIPList_DNS(void)" (?GetLocalIPList_DNS@RTPUDPv4Transmitter@@AAEXXZ) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__send@16,该符号在函数"private: void __thiscall RTPUDPv4Transmitter::AbortWaitInternal(void)" (?AbortWaitInternal@RTPUDPv4Transmitter@@AAEXXZ) 中被引用
jrtplib.lib(rtppollthread.obj) : error LNK2019: 无法解析的外部符号"public: virtual __thiscall JThread::~JThread(void)" (??1JThread@@UAE@XZ),该符号在函数__unwindfunclet$??0RTPPollThread@@QAE@AAVRTPSession@@AAVRTCPScheduler@@@Z$0 中被引用
jrtplib.lib(rtppollthread.obj) : error LNK2019: 无法解析的外部符号"public: __thiscall JThread::JThread(void)" (??0JThread@@QAE@XZ),该符号在函数"public: __thiscall RTPPollThread::RTPPollThread(class RTPSession &,class RTCPScheduler &)" (??0RTPPollThread@@QAE@AAVRTPSession@@AAVRTCPScheduler@@@Z) 中被引用
jrtplib.lib(rtppollthread.obj) : error LNK2019: 无法解析的外部符号"public: int __thiscall JThread::Start(void)" (?Start@JThread@@QAEHXZ),该符号在函数"public: int __thiscall RTPPollThread::Start(class RTPTransmitter *)" (?Start@RTPPollThread@@QAEHPAVRTPTransmitter@@@Z) 中被引用
jrtplib.lib(rtppollthread.obj) : error LNK2019: 无法解析的外部符号"public: bool __thiscall JThread::IsRunning(void)" (?IsRunning@JThread@@QAE_NXZ),该符号在函数"public: int __thiscall RTPPollThread::Start(class RTPTransmitter *)" (?Start@RTPPollThread@@QAEHPAVRTPTransmitter@@@Z) 中被引用
jrtplib.lib(rtppollthread.obj) : error LNK2019: 无法解析的外部符号"public: int __thiscall JThread::Kill(void)" (?Kill@JThread@@QAEHXZ),该符号在函数"public: void __thiscall RTPPollThread::Stop(void)" (?Stop@RTPPollThread@@QAEXXZ) 中被引用
jrtplib.lib(rtppollthread.obj) : error LNK2019: 无法解析的外部符号"protected: void __thiscall JThread::ThreadStarted(void)" (?ThreadStarted@JThread@@IAEXXZ),该符号在函数"private: virtual void * __thiscall RTPPollThread::Thread(void)" (?Thread@RTPPollThread@@EAEPAXXZ) 中被引用
F:/Programming/AV_Programs/RTPSender/Debug/RTPSender.exe : fatal error LNK1120: 35 个无法解析的外部命令
生成日志保存在“file://f:/Programming/AV_Programs/RTPSender/RTPSender/Debug/BuildLog.htm”
RTPSender - 55 个错误,个警告
========== 全部重新生成: 0 已成功, 1 已失败, 0 已跳过==========
 
这是我们要加上 ws2_32.lib 和 jthread.lib这两个库,这样我们就会成功了。
到这里我们jrtplib基本配置的差不多了,当然我们可能在用特定的函数是还需要一些特定的库。
关于开源的RTP——jrtplib的使用
 
首先,我向我们应该先到下面的链接网站上下载jrtplib和jthread这两个包
http://research.edm.uhasselt.be/~jori/page/index.php?n=CS.Jrtplib
 
然后,我们要对这两个包进行编译,首先是编译jthread这个包里面的工程,编译成功后(我编译了,没有问题),现在我们可以编译jrtplib了。在我们编译这个工程之前,我们要将先前编译成功后的jthread后的得到的jthread.lib和jthread目录../src下的.h文件加到jrtplib这个工程中再编译,不然会出现找不到xxx.h的错误和非法的引用等的编译或连接错误。
 
好了,当我们成功了以上的步骤后,就可以向配置directshow的baseclass那样来配置我们的编译器。
 
下面是vs 2005下一个简单的控制台工程的一部分:
[cpp]  view plain copy print ?
  1. #include"stdafx.h"  
  2. #include"rtpsession.h"  
  3. #include<iostream>  
  4. #include<stdio.h>  
  5.    
  6. usingnamespace std;  
  7.    
  8. void CheckError(int inErrNum)  
  9. {  
  10.     if(inErrNum < 0)  
  11.     {  
  12.         cout<<"Error:"<<RTPGetErrorString(inErrNum)<<endl;  
  13.         exit(-1);  
  14.     }  
  15. }  
  16.    
  17. int _tmain(int argc, _TCHAR* argv[])  
  18. {  
  19.     RTPSession sess;  
  20.    
  21.     return 0;  
  22. }  
在我们生成解决方案的时候我们会得到以下错误:
------ 已启动全部重新生成: 项目: RTPSender, 配置: Debug Win32 ------
正在删除项目“RTPSender”(配置“Debug|Win32”)的中间文件和输出文件
正在编译...
stdafx.cpp
正在编译...
RTPSender.cpp
正在编译资源清单...
正在链接...
RTPSender.obj : error LNK2019: 无法解析的外部符号"class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl RTPGetErrorString(int)" (?RTPGetErrorString@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@H@Z),该符号在函数"void __cdecl CheckError(int)" (?CheckError@@YAXH@Z) 中被引用
RTPSender.obj : error LNK2019: 无法解析的外部符号"public: virtual __thiscall RTPSession::~RTPSession(void)" (??1RTPSession@@UAE@XZ),该符号在函数_wmain 中被引用
RTPSender.obj : error LNK2019: 无法解析的外部符号"public: __thiscall RTPSession::RTPSession(class RTPMemoryManager *)" (??0RTPSession@@QAE@PAVRTPMemoryManager@@@Z),该符号在函数_wmain 中被引用
F:/Programming/AV_Programs/RTPSender/Debug/RTPSender.exe : fatal error LNK1120: 3 个无法解析的外部命令
生成日志保存在“file://f:/Programming/AV_Programs/RTPSender/RTPSender/Debug/BuildLog.htm”
RTPSender - 4 个错误,个警告
========== 全部重新生成: 0 已成功, 1 已失败, 0 已跳过==========
 
这是我们要加上 jrtplib.lib
但在我们再次生成解决方案时还会出现以下错误:
------ 已启动全部重新生成: 项目: RTPSender, 配置: Debug Win32 ------
正在删除项目“RTPSender”(配置“Debug|Win32”)的中间文件和输出文件
正在编译...
stdafx.cpp
正在编译...
RTPSender.cpp
正在编译资源清单...
正在链接...
jrtplib.lib(rtpsession.obj) : error LNK2019: 无法解析的外部符号"public: __thiscall JMutex::~JMutex(void)" (??1JMutex@@QAE@XZ),该符号在函数__unwindfunclet$??0RTPSession@@QAE@PAVRTPMemoryManager@@@Z$0 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号"public: __thiscall JMutex::~JMutex(void)" (??1JMutex@@QAE@XZ)
jrtplib.lib(rtppollthread.obj) : error LNK2001: 无法解析的外部符号"public: __thiscall JMutex::~JMutex(void)" (??1JMutex@@QAE@XZ)
jrtplib.lib(rtpsession.obj) : error LNK2019: 无法解析的外部符号"public: __thiscall JMutex::JMutex(void)" (??0JMutex@@QAE@XZ),该符号在函数"public: __thiscall RTPSession::RTPSession(class RTPMemoryManager *)" (??0RTPSession@@QAE@PAVRTPMemoryManager@@@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号"public: __thiscall JMutex::JMutex(void)" (??0JMutex@@QAE@XZ)
jrtplib.lib(rtppollthread.obj) : error LNK2001: 无法解析的外部符号"public: __thiscall JMutex::JMutex(void)" (??0JMutex@@QAE@XZ)
jrtplib.lib(rtpsession.obj) : error LNK2019: 无法解析的外部符号"public: int __thiscall JMutex::Init(void)" (?Init@JMutex@@QAEHXZ),该符号在函数"private: int __thiscall RTPSession::InternalCreate(class RTPSessionParams const &)" (?InternalCreate@RTPSession@@AAEHABVRTPSessionParams@@@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号"public: int __thiscall JMutex::Init(void)" (?Init@JMutex@@QAEHXZ)
jrtplib.lib(rtppollthread.obj) : error LNK2001: 无法解析的外部符号"public: int __thiscall JMutex::Init(void)" (?Init@JMutex@@QAEHXZ)
jrtplib.lib(rtpsession.obj) : error LNK2019: 无法解析的外部符号"public: int __thiscall JMutex::Unlock(void)" (?Unlock@JMutex@@QAEHXZ),该符号在函数"public: unsigned int __thiscall RTPSession::GetLocalSSRC(void)" (?GetLocalSSRC@RTPSession@@QAEIXZ) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号"public: int __thiscall JMutex::Unlock(void)" (?Unlock@JMutex@@QAEHXZ)
jrtplib.lib(rtppollthread.obj) : error LNK2001: 无法解析的外部符号"public: int __thiscall JMutex::Unlock(void)" (?Unlock@JMutex@@QAEHXZ)
jrtplib.lib(rtpsession.obj) : error LNK2019: 无法解析的外部符号"public: int __thiscall JMutex::Lock(void)" (?Lock@JMutex@@QAEHXZ),该符号在函数"public: unsigned int __thiscall RTPSession::GetLocalSSRC(void)" (?GetLocalSSRC@RTPSession@@QAEIXZ) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号"public: int __thiscall JMutex::Lock(void)" (?Lock@JMutex@@QAEHXZ)
jrtplib.lib(rtppollthread.obj) : error LNK2001: 无法解析的外部符号"public: int __thiscall JMutex::Lock(void)" (?Lock@JMutex@@QAEHXZ)
jrtplib.lib(rtpsession.obj) : error LNK2019: 无法解析的外部符号__imp__gethostname@8,该符号在函数"private: int __thiscall RTPSession::CreateCNAME(unsigned char *,unsigned int *,bool)" (?CreateCNAME@RTPSession@@AAEHPAEPAI_N@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号__imp__gethostname@8
jrtplib.lib(rtpsources.obj) : error LNK2019: 无法解析的外部符号__imp__ntohl@4,该符号在函数"public: unsigned int __thiscall RTCPSDESPacket::GetChunkSSRC(void)const " (?GetChunkSSRC@RTCPSDESPacket@@QBEIXZ) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号__imp__ntohl@4
jrtplib.lib(rtppacket.obj) : error LNK2001: 无法解析的外部符号__imp__ntohl@4
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__bind@12,该符号在函数"public: virtual int __thiscall RTPUDPv4Transmitter::Create(unsigned int,class RTPTransmissionParams const *)" (?Create@RTPUDPv4Transmitter@@UAEHIPBVRTPTransmissionParams@@@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__htonl@4,该符号在函数"public: virtual int __thiscall RTPUDPv4Transmitter::Create(unsigned int,class RTPTransmissionParams const *)" (?Create@RTPUDPv4Transmitter@@UAEHIPBVRTPTransmissionParams@@@Z) 中被引用
jrtplib.lib(rtcpcompoundpacketbuilder.obj) : error LNK2001: 无法解析的外部符号__imp__htonl@4
jrtplib.lib(rtppacket.obj) : error LNK2001: 无法解析的外部符号__imp__htonl@4
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__htons@4,该符号在函数"public: virtual int __thiscall RTPUDPv4Transmitter::Create(unsigned int,class RTPTransmissionParams const *)" (?Create@RTPUDPv4Transmitter@@UAEHIPBVRTPTransmissionParams@@@Z) 中被引用
jrtplib.lib(rtcpcompoundpacketbuilder.obj) : error LNK2001: 无法解析的外部符号__imp__htons@4
jrtplib.lib(rtppacket.obj) : error LNK2001: 无法解析的外部符号__imp__htons@4
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__setsockopt@20,该符号在函数"public: virtual int __thiscall RTPUDPv4Transmitter::Create(unsigned int,class RTPTransmissionParams const *)" (?Create@RTPUDPv4Transmitter@@UAEHIPBVRTPTransmissionParams@@@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__closesocket@4,该符号在函数"public: virtual int __thiscall RTPUDPv4Transmitter::Create(unsigned int,class RTPTransmissionParams const *)" (?Create@RTPUDPv4Transmitter@@UAEHIPBVRTPTransmissionParams@@@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__socket@12,该符号在函数"public: virtual int __thiscall RTPUDPv4Transmitter::Create(unsigned int,class RTPTransmissionParams const *)" (?Create@RTPUDPv4Transmitter@@UAEHIPBVRTPTransmissionParams@@@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__gethostbyaddr@12,该符号在函数"public: virtual int __thiscall RTPUDPv4Transmitter::GetLocalHostName(unsigned char *,unsigned int *)" (?GetLocalHostName@RTPUDPv4Transmitter@@UAEHPAEPAI@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__recv@16,该符号在函数"public: virtual int __thiscall RTPUDPv4Transmitter::WaitForIncomingData(class RTPTime const &,bool *)" (?WaitForIncomingData@RTPUDPv4Transmitter@@UAEHABVRTPTime@@PA_N@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号___WSAFDIsSet@8,该符号在函数"public: virtual int __thiscall RTPUDPv4Transmitter::WaitForIncomingData(class RTPTime const &,bool *)" (?WaitForIncomingData@RTPUDPv4Transmitter@@UAEHABVRTPTime@@PA_N@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__select@20,该符号在函数"public: virtual int __thiscall RTPUDPv4Transmitter::WaitForIncomingData(class RTPTime const &,bool *)" (?WaitForIncomingData@RTPUDPv4Transmitter@@UAEHABVRTPTime@@PA_N@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__sendto@24,该符号在函数"public: virtual int __thiscall RTPUDPv4Transmitter::SendRTPData(void const *,unsigned int)" (?SendRTPData@RTPUDPv4Transmitter@@UAEHPBXI@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__ntohs@4,该符号在函数"private: int __thiscall RTPUDPv4Transmitter::PollSocket(bool)" (?PollSocket@RTPUDPv4Transmitter@@AAEH_N@Z) 中被引用
jrtplib.lib(rtppacket.obj) : error LNK2001: 无法解析的外部符号__imp__ntohs@4
jrtplib.lib(rtcpcompoundpacket.obj) : error LNK2001: 无法解析的外部符号__imp__ntohs@4
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__recvfrom@24,该符号在函数"private: int __thiscall RTPUDPv4Transmitter::PollSocket(bool)" (?PollSocket@RTPUDPv4Transmitter@@AAEH_N@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__ioctlsocket@12,该符号在函数"private: int __thiscall RTPUDPv4Transmitter::PollSocket(bool)" (?PollSocket@RTPUDPv4Transmitter@@AAEH_N@Z) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__accept@12,该符号在函数"private: int __thiscall RTPUDPv4Transmitter::CreateAbortDescriptors(void)" (?CreateAbortDescriptors@RTPUDPv4Transmitter@@AAEHXZ) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__connect@12,该符号在函数"private: int __thiscall RTPUDPv4Transmitter::CreateAbortDescriptors(void)" (?CreateAbortDescriptors@RTPUDPv4Transmitter@@AAEHXZ) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__inet_addr@4,该符号在函数"private: int __thiscall RTPUDPv4Transmitter::CreateAbortDescriptors(void)" (?CreateAbortDescriptors@RTPUDPv4Transmitter@@AAEHXZ) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__listen@8,该符号在函数"private: int __thiscall RTPUDPv4Transmitter::CreateAbortDescriptors(void)" (?CreateAbortDescriptors@RTPUDPv4Transmitter@@AAEHXZ) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__getsockname@12,该符号在函数"private: int __thiscall RTPUDPv4Transmitter::CreateAbortDescriptors(void)" (?CreateAbortDescriptors@RTPUDPv4Transmitter@@AAEHXZ) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__WSAIoctl@36,该符号在函数"private: bool __thiscall RTPUDPv4Transmitter::GetLocalIPList_Interfaces(void)" (?GetLocalIPList_Interfaces@RTPUDPv4Transmitter@@AAE_NXZ) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__gethostbyname@4,该符号在函数"private: void __thiscall RTPUDPv4Transmitter::GetLocalIPList_DNS(void)" (?GetLocalIPList_DNS@RTPUDPv4Transmitter@@AAEXXZ) 中被引用
jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__send@16,该符号在函数"private: void __thiscall RTPUDPv4Transmitter::AbortWaitInternal(void)" (?AbortWaitInternal@RTPUDPv4Transmitter@@AAEXXZ) 中被引用
jrtplib.lib(rtppollthread.obj) : error LNK2019: 无法解析的外部符号"public: virtual __thiscall JThread::~JThread(void)" (??1JThread@@UAE@XZ),该符号在函数__unwindfunclet$??0RTPPollThread@@QAE@AAVRTPSession@@AAVRTCPScheduler@@@Z$0 中被引用
jrtplib.lib(rtppollthread.obj) : error LNK2019: 无法解析的外部符号"public: __thiscall JThread::JThread(void)" (??0JThread@@QAE@XZ),该符号在函数"public: __thiscall RTPPollThread::RTPPollThread(class RTPSession &,class RTCPScheduler &)" (??0RTPPollThread@@QAE@AAVRTPSession@@AAVRTCPScheduler@@@Z) 中被引用
jrtplib.lib(rtppollthread.obj) : error LNK2019: 无法解析的外部符号"public: int __thiscall JThread::Start(void)" (?Start@JThread@@QAEHXZ),该符号在函数"public: int __thiscall RTPPollThread::Start(class RTPTransmitter *)" (?Start@RTPPollThread@@QAEHPAVRTPTransmitter@@@Z) 中被引用
jrtplib.lib(rtppollthread.obj) : error LNK2019: 无法解析的外部符号"public: bool __thiscall JThread::IsRunning(void)" (?IsRunning@JThread@@QAE_NXZ),该符号在函数"public: int __thiscall RTPPollThread::Start(class RTPTransmitter *)" (?Start@RTPPollThread@@QAEHPAVRTPTransmitter@@@Z) 中被引用
jrtplib.lib(rtppollthread.obj) : error LNK2019: 无法解析的外部符号"public: int __thiscall JThread::Kill(void)" (?Kill@JThread@@QAEHXZ),该符号在函数"public: void __thiscall RTPPollThread::Stop(void)" (?Stop@RTPPollThread@@QAEXXZ) 中被引用
jrtplib.lib(rtppollthread.obj) : error LNK2019: 无法解析的外部符号"protected: void __thiscall JThread::ThreadStarted(void)" (?ThreadStarted@JThread@@IAEXXZ),该符号在函数"private: virtual void * __thiscall RTPPollThread::Thread(void)" (?Thread@RTPPollThread@@EAEPAXXZ) 中被引用
F:/Programming/AV_Programs/RTPSender/Debug/RTPSender.exe : fatal error LNK1120: 35 个无法解析的外部命令
生成日志保存在“file://f:/Programming/AV_Programs/RTPSender/RTPSender/Debug/BuildLog.htm”
RTPSender - 55 个错误,个警告
========== 全部重新生成: 0 已成功, 1 已失败, 0 已跳过==========
 
这是我们要加上 ws2_32.lib 和 jthread.lib这两个库,这样我们就会成功了。
到这里我们jrtplib基本配置的差不多了,当然我们可能在用特定的函数是还需要一些特定的库。
http://www.yayakq.cn/news/720805/

相关文章:

  • 杭州 建设网站首页贵州省冶金建设有限公司网站
  • 哪个视频网站做视频赚钱网站建设预算表样本
  • 网站建设采购深圳做网站公司
  • php+mysql网站开发全程实例 pdfwordpress mu 模板
  • 用html5的视频网站好看的网页设计作品欣赏
  • 做网站的竞品分析北京响应式的网站设计
  • 伍佰亿网站建设济南网站建设设计
  • 新昌品牌网站建设医院网站管理办法
  • 苏州网站建设哪家做得好免费注册网站软件
  • 上海建站外贸wordpress支持响应式吗
  • 网站建设亿金手指花总14小程序平台推广方案
  • 做网站的不足 心得余姚网站建设
  • dw网站制作素材有人看片吗免费观看
  • 建一个网站得多少钱网站推广注意事项
  • 贵州专业网站建设延吉网站制作
  • 广州网站开发定制公司企业官网型网站模板下载
  • 东莞企业网站价格阳春市建设局网站
  • 企业网站模板 网页模板广告设计与制作需要学什么专业
  • 建分类信息网站wordpress 怎么传网站
  • 网站后台如何更换在线qq咨询代码湖北建设工程造价协会网站
  • 东莞做网站建设公司小程序开发难度大吗
  • 模板网站的好处建设网站服务器自营方式
  • 凡科网免费做网站怎么用程序做网站
  • 做尽调需要用到的网站东莞保安公司联系电话
  • 做自媒体的网站名字活动设计方案模板
  • 做那个网站的小编比较好酒泉网站建设培训
  • 运城网站开发app自己做的网站背景怎么设置
  • 免费做网站报价公众号怎么做文章
  • 外贸开发网站开发建筑网325
  • 利用地图建网站连山建设局网站