佛山制作做网站,哪个旅游网站规划好,wordpress图片素材主题,东莞模块网站建设方案关于开源的RTP——jrtplib的使用 首先#xff0c;我向我们应该先到下面的链接网站上下载jrtplib和jthread这两个包 http://research.edm.uhasselt.be/~jori/page/index.php?nCS.Jrtplib 然后#xff0c;我们要对这两个包进行编译#xff0c;首先是编译jthread这个包里面的工… 关于开源的RTP——jrtplib的使用 首先我向我们应该先到下面的链接网站上下载jrtplib和jthread这两个包 http://research.edm.uhasselt.be/~jori/page/index.php?nCS.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?nCS.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?nCS.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?nCS.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?nCS.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?nCS.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?nCS.Jrtplib 然后我们要对这两个包进行编译首先是编译jthread这个包里面的工程编译成功后我编译了没有问题现在我们可以编译jrtplib了。在我们编译这个工程之前我们要将先前编译成功后的jthread后的得到的jthread.lib和jthread目录../src下的.h文件加到jrtplib这个工程中再编译不然会出现找不到xxx.h的错误和非法的引用等的编译或连接错误。 好了当我们成功了以上的步骤后就可以向配置directshow的baseclass那样来配置我们的编译器。 下面是vs 2005下一个简单的控制台工程的一部分 [cpp] view plain copy print ? #includestdafx.h #includertpsession.h #includeiostream #includestdio.h usingnamespace std; void CheckError(int inErrNum) { if(inErrNum 0) { coutError:RTPGetErrorString(inErrNum)endl; exit(-1); } } int _tmain(int argc, _TCHAR* argv[]) { RTPSession sess; return 0; } 在我们生成解决方案的时候我们会得到以下错误 ------ 已启动全部重新生成: 项目: RTPSender, 配置: Debug Win32 ------ 正在删除项目“RTPSender”(配置“Debug|Win32”)的中间文件和输出文件 正在编译... stdafx.cpp 正在编译... RTPSender.cpp 正在编译资源清单... 正在链接... RTPSender.obj : error LNK2019: 无法解析的外部符号class std::basic_stringchar,struct std::char_traitschar,class std::allocatorchar __cdecl RTPGetErrorString(int) (?RTPGetErrorStringYA?AV?$basic_stringDU?$char_traitsDstdV?$allocatorD2stdHZ)该符号在函数void __cdecl CheckError(int) (?CheckErrorYAXHZ) 中被引用 RTPSender.obj : error LNK2019: 无法解析的外部符号public: virtual __thiscall RTPSession::~RTPSession(void) (??1RTPSessionUAEXZ)该符号在函数_wmain 中被引用 RTPSender.obj : error LNK2019: 无法解析的外部符号public: __thiscall RTPSession::RTPSession(class RTPMemoryManager *) (??0RTPSessionQAEPAVRTPMemoryManagerZ)该符号在函数_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) (??1JMutexQAEXZ)该符号在函数__unwindfunclet$??0RTPSessionQAEPAVRTPMemoryManagerZ$0 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号public: __thiscall JMutex::~JMutex(void) (??1JMutexQAEXZ) jrtplib.lib(rtppollthread.obj) : error LNK2001: 无法解析的外部符号public: __thiscall JMutex::~JMutex(void) (??1JMutexQAEXZ) jrtplib.lib(rtpsession.obj) : error LNK2019: 无法解析的外部符号public: __thiscall JMutex::JMutex(void) (??0JMutexQAEXZ)该符号在函数public: __thiscall RTPSession::RTPSession(class RTPMemoryManager *) (??0RTPSessionQAEPAVRTPMemoryManagerZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号public: __thiscall JMutex::JMutex(void) (??0JMutexQAEXZ) jrtplib.lib(rtppollthread.obj) : error LNK2001: 无法解析的外部符号public: __thiscall JMutex::JMutex(void) (??0JMutexQAEXZ) jrtplib.lib(rtpsession.obj) : error LNK2019: 无法解析的外部符号public: int __thiscall JMutex::Init(void) (?InitJMutexQAEHXZ)该符号在函数private: int __thiscall RTPSession::InternalCreate(class RTPSessionParams const ) (?InternalCreateRTPSessionAAEHABVRTPSessionParamsZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号public: int __thiscall JMutex::Init(void) (?InitJMutexQAEHXZ) jrtplib.lib(rtppollthread.obj) : error LNK2001: 无法解析的外部符号public: int __thiscall JMutex::Init(void) (?InitJMutexQAEHXZ) jrtplib.lib(rtpsession.obj) : error LNK2019: 无法解析的外部符号public: int __thiscall JMutex::Unlock(void) (?UnlockJMutexQAEHXZ)该符号在函数public: unsigned int __thiscall RTPSession::GetLocalSSRC(void) (?GetLocalSSRCRTPSessionQAEIXZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号public: int __thiscall JMutex::Unlock(void) (?UnlockJMutexQAEHXZ) jrtplib.lib(rtppollthread.obj) : error LNK2001: 无法解析的外部符号public: int __thiscall JMutex::Unlock(void) (?UnlockJMutexQAEHXZ) jrtplib.lib(rtpsession.obj) : error LNK2019: 无法解析的外部符号public: int __thiscall JMutex::Lock(void) (?LockJMutexQAEHXZ)该符号在函数public: unsigned int __thiscall RTPSession::GetLocalSSRC(void) (?GetLocalSSRCRTPSessionQAEIXZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号public: int __thiscall JMutex::Lock(void) (?LockJMutexQAEHXZ) jrtplib.lib(rtppollthread.obj) : error LNK2001: 无法解析的外部符号public: int __thiscall JMutex::Lock(void) (?LockJMutexQAEHXZ) jrtplib.lib(rtpsession.obj) : error LNK2019: 无法解析的外部符号__imp__gethostname8该符号在函数private: int __thiscall RTPSession::CreateCNAME(unsigned char *,unsigned int *,bool) (?CreateCNAMERTPSessionAAEHPAEPAI_NZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号__imp__gethostname8 jrtplib.lib(rtpsources.obj) : error LNK2019: 无法解析的外部符号__imp__ntohl4该符号在函数public: unsigned int __thiscall RTCPSDESPacket::GetChunkSSRC(void)const (?GetChunkSSRCRTCPSDESPacketQBEIXZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号__imp__ntohl4 jrtplib.lib(rtppacket.obj) : error LNK2001: 无法解析的外部符号__imp__ntohl4 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__bind12该符号在函数public: virtual int __thiscall RTPUDPv4Transmitter::Create(unsigned int,class RTPTransmissionParams const *) (?CreateRTPUDPv4TransmitterUAEHIPBVRTPTransmissionParamsZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__htonl4该符号在函数public: virtual int __thiscall RTPUDPv4Transmitter::Create(unsigned int,class RTPTransmissionParams const *) (?CreateRTPUDPv4TransmitterUAEHIPBVRTPTransmissionParamsZ) 中被引用 jrtplib.lib(rtcpcompoundpacketbuilder.obj) : error LNK2001: 无法解析的外部符号__imp__htonl4 jrtplib.lib(rtppacket.obj) : error LNK2001: 无法解析的外部符号__imp__htonl4 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__htons4该符号在函数public: virtual int __thiscall RTPUDPv4Transmitter::Create(unsigned int,class RTPTransmissionParams const *) (?CreateRTPUDPv4TransmitterUAEHIPBVRTPTransmissionParamsZ) 中被引用 jrtplib.lib(rtcpcompoundpacketbuilder.obj) : error LNK2001: 无法解析的外部符号__imp__htons4 jrtplib.lib(rtppacket.obj) : error LNK2001: 无法解析的外部符号__imp__htons4 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__setsockopt20该符号在函数public: virtual int __thiscall RTPUDPv4Transmitter::Create(unsigned int,class RTPTransmissionParams const *) (?CreateRTPUDPv4TransmitterUAEHIPBVRTPTransmissionParamsZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__closesocket4该符号在函数public: virtual int __thiscall RTPUDPv4Transmitter::Create(unsigned int,class RTPTransmissionParams const *) (?CreateRTPUDPv4TransmitterUAEHIPBVRTPTransmissionParamsZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__socket12该符号在函数public: virtual int __thiscall RTPUDPv4Transmitter::Create(unsigned int,class RTPTransmissionParams const *) (?CreateRTPUDPv4TransmitterUAEHIPBVRTPTransmissionParamsZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__gethostbyaddr12该符号在函数public: virtual int __thiscall RTPUDPv4Transmitter::GetLocalHostName(unsigned char *,unsigned int *) (?GetLocalHostNameRTPUDPv4TransmitterUAEHPAEPAIZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__recv16该符号在函数public: virtual int __thiscall RTPUDPv4Transmitter::WaitForIncomingData(class RTPTime const ,bool *) (?WaitForIncomingDataRTPUDPv4TransmitterUAEHABVRTPTimePA_NZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号___WSAFDIsSet8该符号在函数public: virtual int __thiscall RTPUDPv4Transmitter::WaitForIncomingData(class RTPTime const ,bool *) (?WaitForIncomingDataRTPUDPv4TransmitterUAEHABVRTPTimePA_NZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__select20该符号在函数public: virtual int __thiscall RTPUDPv4Transmitter::WaitForIncomingData(class RTPTime const ,bool *) (?WaitForIncomingDataRTPUDPv4TransmitterUAEHABVRTPTimePA_NZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__sendto24该符号在函数public: virtual int __thiscall RTPUDPv4Transmitter::SendRTPData(void const *,unsigned int) (?SendRTPDataRTPUDPv4TransmitterUAEHPBXIZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__ntohs4该符号在函数private: int __thiscall RTPUDPv4Transmitter::PollSocket(bool) (?PollSocketRTPUDPv4TransmitterAAEH_NZ) 中被引用 jrtplib.lib(rtppacket.obj) : error LNK2001: 无法解析的外部符号__imp__ntohs4 jrtplib.lib(rtcpcompoundpacket.obj) : error LNK2001: 无法解析的外部符号__imp__ntohs4 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__recvfrom24该符号在函数private: int __thiscall RTPUDPv4Transmitter::PollSocket(bool) (?PollSocketRTPUDPv4TransmitterAAEH_NZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__ioctlsocket12该符号在函数private: int __thiscall RTPUDPv4Transmitter::PollSocket(bool) (?PollSocketRTPUDPv4TransmitterAAEH_NZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__accept12该符号在函数private: int __thiscall RTPUDPv4Transmitter::CreateAbortDescriptors(void) (?CreateAbortDescriptorsRTPUDPv4TransmitterAAEHXZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__connect12该符号在函数private: int __thiscall RTPUDPv4Transmitter::CreateAbortDescriptors(void) (?CreateAbortDescriptorsRTPUDPv4TransmitterAAEHXZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__inet_addr4该符号在函数private: int __thiscall RTPUDPv4Transmitter::CreateAbortDescriptors(void) (?CreateAbortDescriptorsRTPUDPv4TransmitterAAEHXZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__listen8该符号在函数private: int __thiscall RTPUDPv4Transmitter::CreateAbortDescriptors(void) (?CreateAbortDescriptorsRTPUDPv4TransmitterAAEHXZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__getsockname12该符号在函数private: int __thiscall RTPUDPv4Transmitter::CreateAbortDescriptors(void) (?CreateAbortDescriptorsRTPUDPv4TransmitterAAEHXZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__WSAIoctl36该符号在函数private: bool __thiscall RTPUDPv4Transmitter::GetLocalIPList_Interfaces(void) (?GetLocalIPList_InterfacesRTPUDPv4TransmitterAAE_NXZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__gethostbyname4该符号在函数private: void __thiscall RTPUDPv4Transmitter::GetLocalIPList_DNS(void) (?GetLocalIPList_DNSRTPUDPv4TransmitterAAEXXZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__send16该符号在函数private: void __thiscall RTPUDPv4Transmitter::AbortWaitInternal(void) (?AbortWaitInternalRTPUDPv4TransmitterAAEXXZ) 中被引用 jrtplib.lib(rtppollthread.obj) : error LNK2019: 无法解析的外部符号public: virtual __thiscall JThread::~JThread(void) (??1JThreadUAEXZ)该符号在函数__unwindfunclet$??0RTPPollThreadQAEAAVRTPSessionAAVRTCPSchedulerZ$0 中被引用 jrtplib.lib(rtppollthread.obj) : error LNK2019: 无法解析的外部符号public: __thiscall JThread::JThread(void) (??0JThreadQAEXZ)该符号在函数public: __thiscall RTPPollThread::RTPPollThread(class RTPSession ,class RTCPScheduler ) (??0RTPPollThreadQAEAAVRTPSessionAAVRTCPSchedulerZ) 中被引用 jrtplib.lib(rtppollthread.obj) : error LNK2019: 无法解析的外部符号public: int __thiscall JThread::Start(void) (?StartJThreadQAEHXZ)该符号在函数public: int __thiscall RTPPollThread::Start(class RTPTransmitter *) (?StartRTPPollThreadQAEHPAVRTPTransmitterZ) 中被引用 jrtplib.lib(rtppollthread.obj) : error LNK2019: 无法解析的外部符号public: bool __thiscall JThread::IsRunning(void) (?IsRunningJThreadQAE_NXZ)该符号在函数public: int __thiscall RTPPollThread::Start(class RTPTransmitter *) (?StartRTPPollThreadQAEHPAVRTPTransmitterZ) 中被引用 jrtplib.lib(rtppollthread.obj) : error LNK2019: 无法解析的外部符号public: int __thiscall JThread::Kill(void) (?KillJThreadQAEHXZ)该符号在函数public: void __thiscall RTPPollThread::Stop(void) (?StopRTPPollThreadQAEXXZ) 中被引用 jrtplib.lib(rtppollthread.obj) : error LNK2019: 无法解析的外部符号protected: void __thiscall JThread::ThreadStarted(void) (?ThreadStartedJThreadIAEXXZ)该符号在函数private: virtual void * __thiscall RTPPollThread::Thread(void) (?ThreadRTPPollThreadEAEPAXXZ) 中被引用 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?nCS.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?nCS.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?nCS.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?nCS.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?nCS.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?nCS.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?nCS.Jrtplib 然后我们要对这两个包进行编译首先是编译jthread这个包里面的工程编译成功后我编译了没有问题现在我们可以编译jrtplib了。在我们编译这个工程之前我们要将先前编译成功后的jthread后的得到的jthread.lib和jthread目录../src下的.h文件加到jrtplib这个工程中再编译不然会出现找不到xxx.h的错误和非法的引用等的编译或连接错误。 好了当我们成功了以上的步骤后就可以向配置directshow的baseclass那样来配置我们的编译器。 下面是vs 2005下一个简单的控制台工程的一部分 [cpp] view plain copy print ? #includestdafx.h #includertpsession.h #includeiostream #includestdio.h usingnamespace std; void CheckError(int inErrNum) { if(inErrNum 0) { coutError:RTPGetErrorString(inErrNum)endl; exit(-1); } } int _tmain(int argc, _TCHAR* argv[]) { RTPSession sess; return 0; } 在我们生成解决方案的时候我们会得到以下错误 ------ 已启动全部重新生成: 项目: RTPSender, 配置: Debug Win32 ------ 正在删除项目“RTPSender”(配置“Debug|Win32”)的中间文件和输出文件 正在编译... stdafx.cpp 正在编译... RTPSender.cpp 正在编译资源清单... 正在链接... RTPSender.obj : error LNK2019: 无法解析的外部符号class std::basic_stringchar,struct std::char_traitschar,class std::allocatorchar __cdecl RTPGetErrorString(int) (?RTPGetErrorStringYA?AV?$basic_stringDU?$char_traitsDstdV?$allocatorD2stdHZ)该符号在函数void __cdecl CheckError(int) (?CheckErrorYAXHZ) 中被引用 RTPSender.obj : error LNK2019: 无法解析的外部符号public: virtual __thiscall RTPSession::~RTPSession(void) (??1RTPSessionUAEXZ)该符号在函数_wmain 中被引用 RTPSender.obj : error LNK2019: 无法解析的外部符号public: __thiscall RTPSession::RTPSession(class RTPMemoryManager *) (??0RTPSessionQAEPAVRTPMemoryManagerZ)该符号在函数_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) (??1JMutexQAEXZ)该符号在函数__unwindfunclet$??0RTPSessionQAEPAVRTPMemoryManagerZ$0 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号public: __thiscall JMutex::~JMutex(void) (??1JMutexQAEXZ) jrtplib.lib(rtppollthread.obj) : error LNK2001: 无法解析的外部符号public: __thiscall JMutex::~JMutex(void) (??1JMutexQAEXZ) jrtplib.lib(rtpsession.obj) : error LNK2019: 无法解析的外部符号public: __thiscall JMutex::JMutex(void) (??0JMutexQAEXZ)该符号在函数public: __thiscall RTPSession::RTPSession(class RTPMemoryManager *) (??0RTPSessionQAEPAVRTPMemoryManagerZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号public: __thiscall JMutex::JMutex(void) (??0JMutexQAEXZ) jrtplib.lib(rtppollthread.obj) : error LNK2001: 无法解析的外部符号public: __thiscall JMutex::JMutex(void) (??0JMutexQAEXZ) jrtplib.lib(rtpsession.obj) : error LNK2019: 无法解析的外部符号public: int __thiscall JMutex::Init(void) (?InitJMutexQAEHXZ)该符号在函数private: int __thiscall RTPSession::InternalCreate(class RTPSessionParams const ) (?InternalCreateRTPSessionAAEHABVRTPSessionParamsZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号public: int __thiscall JMutex::Init(void) (?InitJMutexQAEHXZ) jrtplib.lib(rtppollthread.obj) : error LNK2001: 无法解析的外部符号public: int __thiscall JMutex::Init(void) (?InitJMutexQAEHXZ) jrtplib.lib(rtpsession.obj) : error LNK2019: 无法解析的外部符号public: int __thiscall JMutex::Unlock(void) (?UnlockJMutexQAEHXZ)该符号在函数public: unsigned int __thiscall RTPSession::GetLocalSSRC(void) (?GetLocalSSRCRTPSessionQAEIXZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号public: int __thiscall JMutex::Unlock(void) (?UnlockJMutexQAEHXZ) jrtplib.lib(rtppollthread.obj) : error LNK2001: 无法解析的外部符号public: int __thiscall JMutex::Unlock(void) (?UnlockJMutexQAEHXZ) jrtplib.lib(rtpsession.obj) : error LNK2019: 无法解析的外部符号public: int __thiscall JMutex::Lock(void) (?LockJMutexQAEHXZ)该符号在函数public: unsigned int __thiscall RTPSession::GetLocalSSRC(void) (?GetLocalSSRCRTPSessionQAEIXZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号public: int __thiscall JMutex::Lock(void) (?LockJMutexQAEHXZ) jrtplib.lib(rtppollthread.obj) : error LNK2001: 无法解析的外部符号public: int __thiscall JMutex::Lock(void) (?LockJMutexQAEHXZ) jrtplib.lib(rtpsession.obj) : error LNK2019: 无法解析的外部符号__imp__gethostname8该符号在函数private: int __thiscall RTPSession::CreateCNAME(unsigned char *,unsigned int *,bool) (?CreateCNAMERTPSessionAAEHPAEPAI_NZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号__imp__gethostname8 jrtplib.lib(rtpsources.obj) : error LNK2019: 无法解析的外部符号__imp__ntohl4该符号在函数public: unsigned int __thiscall RTCPSDESPacket::GetChunkSSRC(void)const (?GetChunkSSRCRTCPSDESPacketQBEIXZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号__imp__ntohl4 jrtplib.lib(rtppacket.obj) : error LNK2001: 无法解析的外部符号__imp__ntohl4 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__bind12该符号在函数public: virtual int __thiscall RTPUDPv4Transmitter::Create(unsigned int,class RTPTransmissionParams const *) (?CreateRTPUDPv4TransmitterUAEHIPBVRTPTransmissionParamsZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__htonl4该符号在函数public: virtual int __thiscall RTPUDPv4Transmitter::Create(unsigned int,class RTPTransmissionParams const *) (?CreateRTPUDPv4TransmitterUAEHIPBVRTPTransmissionParamsZ) 中被引用 jrtplib.lib(rtcpcompoundpacketbuilder.obj) : error LNK2001: 无法解析的外部符号__imp__htonl4 jrtplib.lib(rtppacket.obj) : error LNK2001: 无法解析的外部符号__imp__htonl4 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__htons4该符号在函数public: virtual int __thiscall RTPUDPv4Transmitter::Create(unsigned int,class RTPTransmissionParams const *) (?CreateRTPUDPv4TransmitterUAEHIPBVRTPTransmissionParamsZ) 中被引用 jrtplib.lib(rtcpcompoundpacketbuilder.obj) : error LNK2001: 无法解析的外部符号__imp__htons4 jrtplib.lib(rtppacket.obj) : error LNK2001: 无法解析的外部符号__imp__htons4 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__setsockopt20该符号在函数public: virtual int __thiscall RTPUDPv4Transmitter::Create(unsigned int,class RTPTransmissionParams const *) (?CreateRTPUDPv4TransmitterUAEHIPBVRTPTransmissionParamsZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__closesocket4该符号在函数public: virtual int __thiscall RTPUDPv4Transmitter::Create(unsigned int,class RTPTransmissionParams const *) (?CreateRTPUDPv4TransmitterUAEHIPBVRTPTransmissionParamsZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__socket12该符号在函数public: virtual int __thiscall RTPUDPv4Transmitter::Create(unsigned int,class RTPTransmissionParams const *) (?CreateRTPUDPv4TransmitterUAEHIPBVRTPTransmissionParamsZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__gethostbyaddr12该符号在函数public: virtual int __thiscall RTPUDPv4Transmitter::GetLocalHostName(unsigned char *,unsigned int *) (?GetLocalHostNameRTPUDPv4TransmitterUAEHPAEPAIZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__recv16该符号在函数public: virtual int __thiscall RTPUDPv4Transmitter::WaitForIncomingData(class RTPTime const ,bool *) (?WaitForIncomingDataRTPUDPv4TransmitterUAEHABVRTPTimePA_NZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号___WSAFDIsSet8该符号在函数public: virtual int __thiscall RTPUDPv4Transmitter::WaitForIncomingData(class RTPTime const ,bool *) (?WaitForIncomingDataRTPUDPv4TransmitterUAEHABVRTPTimePA_NZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__select20该符号在函数public: virtual int __thiscall RTPUDPv4Transmitter::WaitForIncomingData(class RTPTime const ,bool *) (?WaitForIncomingDataRTPUDPv4TransmitterUAEHABVRTPTimePA_NZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__sendto24该符号在函数public: virtual int __thiscall RTPUDPv4Transmitter::SendRTPData(void const *,unsigned int) (?SendRTPDataRTPUDPv4TransmitterUAEHPBXIZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__ntohs4该符号在函数private: int __thiscall RTPUDPv4Transmitter::PollSocket(bool) (?PollSocketRTPUDPv4TransmitterAAEH_NZ) 中被引用 jrtplib.lib(rtppacket.obj) : error LNK2001: 无法解析的外部符号__imp__ntohs4 jrtplib.lib(rtcpcompoundpacket.obj) : error LNK2001: 无法解析的外部符号__imp__ntohs4 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__recvfrom24该符号在函数private: int __thiscall RTPUDPv4Transmitter::PollSocket(bool) (?PollSocketRTPUDPv4TransmitterAAEH_NZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__ioctlsocket12该符号在函数private: int __thiscall RTPUDPv4Transmitter::PollSocket(bool) (?PollSocketRTPUDPv4TransmitterAAEH_NZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__accept12该符号在函数private: int __thiscall RTPUDPv4Transmitter::CreateAbortDescriptors(void) (?CreateAbortDescriptorsRTPUDPv4TransmitterAAEHXZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__connect12该符号在函数private: int __thiscall RTPUDPv4Transmitter::CreateAbortDescriptors(void) (?CreateAbortDescriptorsRTPUDPv4TransmitterAAEHXZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__inet_addr4该符号在函数private: int __thiscall RTPUDPv4Transmitter::CreateAbortDescriptors(void) (?CreateAbortDescriptorsRTPUDPv4TransmitterAAEHXZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__listen8该符号在函数private: int __thiscall RTPUDPv4Transmitter::CreateAbortDescriptors(void) (?CreateAbortDescriptorsRTPUDPv4TransmitterAAEHXZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__getsockname12该符号在函数private: int __thiscall RTPUDPv4Transmitter::CreateAbortDescriptors(void) (?CreateAbortDescriptorsRTPUDPv4TransmitterAAEHXZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__WSAIoctl36该符号在函数private: bool __thiscall RTPUDPv4Transmitter::GetLocalIPList_Interfaces(void) (?GetLocalIPList_InterfacesRTPUDPv4TransmitterAAE_NXZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__gethostbyname4该符号在函数private: void __thiscall RTPUDPv4Transmitter::GetLocalIPList_DNS(void) (?GetLocalIPList_DNSRTPUDPv4TransmitterAAEXXZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__send16该符号在函数private: void __thiscall RTPUDPv4Transmitter::AbortWaitInternal(void) (?AbortWaitInternalRTPUDPv4TransmitterAAEXXZ) 中被引用 jrtplib.lib(rtppollthread.obj) : error LNK2019: 无法解析的外部符号public: virtual __thiscall JThread::~JThread(void) (??1JThreadUAEXZ)该符号在函数__unwindfunclet$??0RTPPollThreadQAEAAVRTPSessionAAVRTCPSchedulerZ$0 中被引用 jrtplib.lib(rtppollthread.obj) : error LNK2019: 无法解析的外部符号public: __thiscall JThread::JThread(void) (??0JThreadQAEXZ)该符号在函数public: __thiscall RTPPollThread::RTPPollThread(class RTPSession ,class RTCPScheduler ) (??0RTPPollThreadQAEAAVRTPSessionAAVRTCPSchedulerZ) 中被引用 jrtplib.lib(rtppollthread.obj) : error LNK2019: 无法解析的外部符号public: int __thiscall JThread::Start(void) (?StartJThreadQAEHXZ)该符号在函数public: int __thiscall RTPPollThread::Start(class RTPTransmitter *) (?StartRTPPollThreadQAEHPAVRTPTransmitterZ) 中被引用 jrtplib.lib(rtppollthread.obj) : error LNK2019: 无法解析的外部符号public: bool __thiscall JThread::IsRunning(void) (?IsRunningJThreadQAE_NXZ)该符号在函数public: int __thiscall RTPPollThread::Start(class RTPTransmitter *) (?StartRTPPollThreadQAEHPAVRTPTransmitterZ) 中被引用 jrtplib.lib(rtppollthread.obj) : error LNK2019: 无法解析的外部符号public: int __thiscall JThread::Kill(void) (?KillJThreadQAEHXZ)该符号在函数public: void __thiscall RTPPollThread::Stop(void) (?StopRTPPollThreadQAEXXZ) 中被引用 jrtplib.lib(rtppollthread.obj) : error LNK2019: 无法解析的外部符号protected: void __thiscall JThread::ThreadStarted(void) (?ThreadStartedJThreadIAEXXZ)该符号在函数private: virtual void * __thiscall RTPPollThread::Thread(void) (?ThreadRTPPollThreadEAEPAXXZ) 中被引用 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?nCS.Jrtplib 然后我们要对这两个包进行编译首先是编译jthread这个包里面的工程编译成功后我编译了没有问题现在我们可以编译jrtplib了。在我们编译这个工程之前我们要将先前编译成功后的jthread后的得到的jthread.lib和jthread目录../src下的.h文件加到jrtplib这个工程中再编译不然会出现找不到xxx.h的错误和非法的引用等的编译或连接错误。 好了当我们成功了以上的步骤后就可以向配置directshow的baseclass那样来配置我们的编译器。 下面是vs 2005下一个简单的控制台工程的一部分 [cpp] view plain copy print ? #includestdafx.h #includertpsession.h #includeiostream #includestdio.h usingnamespace std; void CheckError(int inErrNum) { if(inErrNum 0) { coutError:RTPGetErrorString(inErrNum)endl; exit(-1); } } int _tmain(int argc, _TCHAR* argv[]) { RTPSession sess; return 0; } 在我们生成解决方案的时候我们会得到以下错误 ------ 已启动全部重新生成: 项目: RTPSender, 配置: Debug Win32 ------ 正在删除项目“RTPSender”(配置“Debug|Win32”)的中间文件和输出文件 正在编译... stdafx.cpp 正在编译... RTPSender.cpp 正在编译资源清单... 正在链接... RTPSender.obj : error LNK2019: 无法解析的外部符号class std::basic_stringchar,struct std::char_traitschar,class std::allocatorchar __cdecl RTPGetErrorString(int) (?RTPGetErrorStringYA?AV?$basic_stringDU?$char_traitsDstdV?$allocatorD2stdHZ)该符号在函数void __cdecl CheckError(int) (?CheckErrorYAXHZ) 中被引用 RTPSender.obj : error LNK2019: 无法解析的外部符号public: virtual __thiscall RTPSession::~RTPSession(void) (??1RTPSessionUAEXZ)该符号在函数_wmain 中被引用 RTPSender.obj : error LNK2019: 无法解析的外部符号public: __thiscall RTPSession::RTPSession(class RTPMemoryManager *) (??0RTPSessionQAEPAVRTPMemoryManagerZ)该符号在函数_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) (??1JMutexQAEXZ)该符号在函数__unwindfunclet$??0RTPSessionQAEPAVRTPMemoryManagerZ$0 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号public: __thiscall JMutex::~JMutex(void) (??1JMutexQAEXZ) jrtplib.lib(rtppollthread.obj) : error LNK2001: 无法解析的外部符号public: __thiscall JMutex::~JMutex(void) (??1JMutexQAEXZ) jrtplib.lib(rtpsession.obj) : error LNK2019: 无法解析的外部符号public: __thiscall JMutex::JMutex(void) (??0JMutexQAEXZ)该符号在函数public: __thiscall RTPSession::RTPSession(class RTPMemoryManager *) (??0RTPSessionQAEPAVRTPMemoryManagerZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号public: __thiscall JMutex::JMutex(void) (??0JMutexQAEXZ) jrtplib.lib(rtppollthread.obj) : error LNK2001: 无法解析的外部符号public: __thiscall JMutex::JMutex(void) (??0JMutexQAEXZ) jrtplib.lib(rtpsession.obj) : error LNK2019: 无法解析的外部符号public: int __thiscall JMutex::Init(void) (?InitJMutexQAEHXZ)该符号在函数private: int __thiscall RTPSession::InternalCreate(class RTPSessionParams const ) (?InternalCreateRTPSessionAAEHABVRTPSessionParamsZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号public: int __thiscall JMutex::Init(void) (?InitJMutexQAEHXZ) jrtplib.lib(rtppollthread.obj) : error LNK2001: 无法解析的外部符号public: int __thiscall JMutex::Init(void) (?InitJMutexQAEHXZ) jrtplib.lib(rtpsession.obj) : error LNK2019: 无法解析的外部符号public: int __thiscall JMutex::Unlock(void) (?UnlockJMutexQAEHXZ)该符号在函数public: unsigned int __thiscall RTPSession::GetLocalSSRC(void) (?GetLocalSSRCRTPSessionQAEIXZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号public: int __thiscall JMutex::Unlock(void) (?UnlockJMutexQAEHXZ) jrtplib.lib(rtppollthread.obj) : error LNK2001: 无法解析的外部符号public: int __thiscall JMutex::Unlock(void) (?UnlockJMutexQAEHXZ) jrtplib.lib(rtpsession.obj) : error LNK2019: 无法解析的外部符号public: int __thiscall JMutex::Lock(void) (?LockJMutexQAEHXZ)该符号在函数public: unsigned int __thiscall RTPSession::GetLocalSSRC(void) (?GetLocalSSRCRTPSessionQAEIXZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号public: int __thiscall JMutex::Lock(void) (?LockJMutexQAEHXZ) jrtplib.lib(rtppollthread.obj) : error LNK2001: 无法解析的外部符号public: int __thiscall JMutex::Lock(void) (?LockJMutexQAEHXZ) jrtplib.lib(rtpsession.obj) : error LNK2019: 无法解析的外部符号__imp__gethostname8该符号在函数private: int __thiscall RTPSession::CreateCNAME(unsigned char *,unsigned int *,bool) (?CreateCNAMERTPSessionAAEHPAEPAI_NZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号__imp__gethostname8 jrtplib.lib(rtpsources.obj) : error LNK2019: 无法解析的外部符号__imp__ntohl4该符号在函数public: unsigned int __thiscall RTCPSDESPacket::GetChunkSSRC(void)const (?GetChunkSSRCRTCPSDESPacketQBEIXZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号__imp__ntohl4 jrtplib.lib(rtppacket.obj) : error LNK2001: 无法解析的外部符号__imp__ntohl4 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__bind12该符号在函数public: virtual int __thiscall RTPUDPv4Transmitter::Create(unsigned int,class RTPTransmissionParams const *) (?CreateRTPUDPv4TransmitterUAEHIPBVRTPTransmissionParamsZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__htonl4该符号在函数public: virtual int __thiscall RTPUDPv4Transmitter::Create(unsigned int,class RTPTransmissionParams const *) (?CreateRTPUDPv4TransmitterUAEHIPBVRTPTransmissionParamsZ) 中被引用 jrtplib.lib(rtcpcompoundpacketbuilder.obj) : error LNK2001: 无法解析的外部符号__imp__htonl4 jrtplib.lib(rtppacket.obj) : error LNK2001: 无法解析的外部符号__imp__htonl4 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__htons4该符号在函数public: virtual int __thiscall RTPUDPv4Transmitter::Create(unsigned int,class RTPTransmissionParams const *) (?CreateRTPUDPv4TransmitterUAEHIPBVRTPTransmissionParamsZ) 中被引用 jrtplib.lib(rtcpcompoundpacketbuilder.obj) : error LNK2001: 无法解析的外部符号__imp__htons4 jrtplib.lib(rtppacket.obj) : error LNK2001: 无法解析的外部符号__imp__htons4 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__setsockopt20该符号在函数public: virtual int __thiscall RTPUDPv4Transmitter::Create(unsigned int,class RTPTransmissionParams const *) (?CreateRTPUDPv4TransmitterUAEHIPBVRTPTransmissionParamsZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__closesocket4该符号在函数public: virtual int __thiscall RTPUDPv4Transmitter::Create(unsigned int,class RTPTransmissionParams const *) (?CreateRTPUDPv4TransmitterUAEHIPBVRTPTransmissionParamsZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__socket12该符号在函数public: virtual int __thiscall RTPUDPv4Transmitter::Create(unsigned int,class RTPTransmissionParams const *) (?CreateRTPUDPv4TransmitterUAEHIPBVRTPTransmissionParamsZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__gethostbyaddr12该符号在函数public: virtual int __thiscall RTPUDPv4Transmitter::GetLocalHostName(unsigned char *,unsigned int *) (?GetLocalHostNameRTPUDPv4TransmitterUAEHPAEPAIZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__recv16该符号在函数public: virtual int __thiscall RTPUDPv4Transmitter::WaitForIncomingData(class RTPTime const ,bool *) (?WaitForIncomingDataRTPUDPv4TransmitterUAEHABVRTPTimePA_NZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号___WSAFDIsSet8该符号在函数public: virtual int __thiscall RTPUDPv4Transmitter::WaitForIncomingData(class RTPTime const ,bool *) (?WaitForIncomingDataRTPUDPv4TransmitterUAEHABVRTPTimePA_NZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__select20该符号在函数public: virtual int __thiscall RTPUDPv4Transmitter::WaitForIncomingData(class RTPTime const ,bool *) (?WaitForIncomingDataRTPUDPv4TransmitterUAEHABVRTPTimePA_NZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__sendto24该符号在函数public: virtual int __thiscall RTPUDPv4Transmitter::SendRTPData(void const *,unsigned int) (?SendRTPDataRTPUDPv4TransmitterUAEHPBXIZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__ntohs4该符号在函数private: int __thiscall RTPUDPv4Transmitter::PollSocket(bool) (?PollSocketRTPUDPv4TransmitterAAEH_NZ) 中被引用 jrtplib.lib(rtppacket.obj) : error LNK2001: 无法解析的外部符号__imp__ntohs4 jrtplib.lib(rtcpcompoundpacket.obj) : error LNK2001: 无法解析的外部符号__imp__ntohs4 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__recvfrom24该符号在函数private: int __thiscall RTPUDPv4Transmitter::PollSocket(bool) (?PollSocketRTPUDPv4TransmitterAAEH_NZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__ioctlsocket12该符号在函数private: int __thiscall RTPUDPv4Transmitter::PollSocket(bool) (?PollSocketRTPUDPv4TransmitterAAEH_NZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__accept12该符号在函数private: int __thiscall RTPUDPv4Transmitter::CreateAbortDescriptors(void) (?CreateAbortDescriptorsRTPUDPv4TransmitterAAEHXZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__connect12该符号在函数private: int __thiscall RTPUDPv4Transmitter::CreateAbortDescriptors(void) (?CreateAbortDescriptorsRTPUDPv4TransmitterAAEHXZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__inet_addr4该符号在函数private: int __thiscall RTPUDPv4Transmitter::CreateAbortDescriptors(void) (?CreateAbortDescriptorsRTPUDPv4TransmitterAAEHXZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__listen8该符号在函数private: int __thiscall RTPUDPv4Transmitter::CreateAbortDescriptors(void) (?CreateAbortDescriptorsRTPUDPv4TransmitterAAEHXZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__getsockname12该符号在函数private: int __thiscall RTPUDPv4Transmitter::CreateAbortDescriptors(void) (?CreateAbortDescriptorsRTPUDPv4TransmitterAAEHXZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__WSAIoctl36该符号在函数private: bool __thiscall RTPUDPv4Transmitter::GetLocalIPList_Interfaces(void) (?GetLocalIPList_InterfacesRTPUDPv4TransmitterAAE_NXZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__gethostbyname4该符号在函数private: void __thiscall RTPUDPv4Transmitter::GetLocalIPList_DNS(void) (?GetLocalIPList_DNSRTPUDPv4TransmitterAAEXXZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__send16该符号在函数private: void __thiscall RTPUDPv4Transmitter::AbortWaitInternal(void) (?AbortWaitInternalRTPUDPv4TransmitterAAEXXZ) 中被引用 jrtplib.lib(rtppollthread.obj) : error LNK2019: 无法解析的外部符号public: virtual __thiscall JThread::~JThread(void) (??1JThreadUAEXZ)该符号在函数__unwindfunclet$??0RTPPollThreadQAEAAVRTPSessionAAVRTCPSchedulerZ$0 中被引用 jrtplib.lib(rtppollthread.obj) : error LNK2019: 无法解析的外部符号public: __thiscall JThread::JThread(void) (??0JThreadQAEXZ)该符号在函数public: __thiscall RTPPollThread::RTPPollThread(class RTPSession ,class RTCPScheduler ) (??0RTPPollThreadQAEAAVRTPSessionAAVRTCPSchedulerZ) 中被引用 jrtplib.lib(rtppollthread.obj) : error LNK2019: 无法解析的外部符号public: int __thiscall JThread::Start(void) (?StartJThreadQAEHXZ)该符号在函数public: int __thiscall RTPPollThread::Start(class RTPTransmitter *) (?StartRTPPollThreadQAEHPAVRTPTransmitterZ) 中被引用 jrtplib.lib(rtppollthread.obj) : error LNK2019: 无法解析的外部符号public: bool __thiscall JThread::IsRunning(void) (?IsRunningJThreadQAE_NXZ)该符号在函数public: int __thiscall RTPPollThread::Start(class RTPTransmitter *) (?StartRTPPollThreadQAEHPAVRTPTransmitterZ) 中被引用 jrtplib.lib(rtppollthread.obj) : error LNK2019: 无法解析的外部符号public: int __thiscall JThread::Kill(void) (?KillJThreadQAEHXZ)该符号在函数public: void __thiscall RTPPollThread::Stop(void) (?StopRTPPollThreadQAEXXZ) 中被引用 jrtplib.lib(rtppollthread.obj) : error LNK2019: 无法解析的外部符号protected: void __thiscall JThread::ThreadStarted(void) (?ThreadStartedJThreadIAEXXZ)该符号在函数private: virtual void * __thiscall RTPPollThread::Thread(void) (?ThreadRTPPollThreadEAEPAXXZ) 中被引用 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?nCS.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?nCS.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?nCS.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?nCS.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?nCS.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?nCS.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?nCS.Jrtplib 然后我们要对这两个包进行编译首先是编译jthread这个包里面的工程编译成功后我编译了没有问题现在我们可以编译jrtplib了。在我们编译这个工程之前我们要将先前编译成功后的jthread后的得到的jthread.lib和jthread目录../src下的.h文件加到jrtplib这个工程中再编译不然会出现找不到xxx.h的错误和非法的引用等的编译或连接错误。 好了当我们成功了以上的步骤后就可以向配置directshow的baseclass那样来配置我们的编译器。 下面是vs 2005下一个简单的控制台工程的一部分 [cpp] view plain copy print ? #includestdafx.h #includertpsession.h #includeiostream #includestdio.h usingnamespace std; void CheckError(int inErrNum) { if(inErrNum 0) { coutError:RTPGetErrorString(inErrNum)endl; exit(-1); } } int _tmain(int argc, _TCHAR* argv[]) { RTPSession sess; return 0; } 在我们生成解决方案的时候我们会得到以下错误 ------ 已启动全部重新生成: 项目: RTPSender, 配置: Debug Win32 ------ 正在删除项目“RTPSender”(配置“Debug|Win32”)的中间文件和输出文件 正在编译... stdafx.cpp 正在编译... RTPSender.cpp 正在编译资源清单... 正在链接... RTPSender.obj : error LNK2019: 无法解析的外部符号class std::basic_stringchar,struct std::char_traitschar,class std::allocatorchar __cdecl RTPGetErrorString(int) (?RTPGetErrorStringYA?AV?$basic_stringDU?$char_traitsDstdV?$allocatorD2stdHZ)该符号在函数void __cdecl CheckError(int) (?CheckErrorYAXHZ) 中被引用 RTPSender.obj : error LNK2019: 无法解析的外部符号public: virtual __thiscall RTPSession::~RTPSession(void) (??1RTPSessionUAEXZ)该符号在函数_wmain 中被引用 RTPSender.obj : error LNK2019: 无法解析的外部符号public: __thiscall RTPSession::RTPSession(class RTPMemoryManager *) (??0RTPSessionQAEPAVRTPMemoryManagerZ)该符号在函数_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) (??1JMutexQAEXZ)该符号在函数__unwindfunclet$??0RTPSessionQAEPAVRTPMemoryManagerZ$0 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号public: __thiscall JMutex::~JMutex(void) (??1JMutexQAEXZ) jrtplib.lib(rtppollthread.obj) : error LNK2001: 无法解析的外部符号public: __thiscall JMutex::~JMutex(void) (??1JMutexQAEXZ) jrtplib.lib(rtpsession.obj) : error LNK2019: 无法解析的外部符号public: __thiscall JMutex::JMutex(void) (??0JMutexQAEXZ)该符号在函数public: __thiscall RTPSession::RTPSession(class RTPMemoryManager *) (??0RTPSessionQAEPAVRTPMemoryManagerZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号public: __thiscall JMutex::JMutex(void) (??0JMutexQAEXZ) jrtplib.lib(rtppollthread.obj) : error LNK2001: 无法解析的外部符号public: __thiscall JMutex::JMutex(void) (??0JMutexQAEXZ) jrtplib.lib(rtpsession.obj) : error LNK2019: 无法解析的外部符号public: int __thiscall JMutex::Init(void) (?InitJMutexQAEHXZ)该符号在函数private: int __thiscall RTPSession::InternalCreate(class RTPSessionParams const ) (?InternalCreateRTPSessionAAEHABVRTPSessionParamsZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号public: int __thiscall JMutex::Init(void) (?InitJMutexQAEHXZ) jrtplib.lib(rtppollthread.obj) : error LNK2001: 无法解析的外部符号public: int __thiscall JMutex::Init(void) (?InitJMutexQAEHXZ) jrtplib.lib(rtpsession.obj) : error LNK2019: 无法解析的外部符号public: int __thiscall JMutex::Unlock(void) (?UnlockJMutexQAEHXZ)该符号在函数public: unsigned int __thiscall RTPSession::GetLocalSSRC(void) (?GetLocalSSRCRTPSessionQAEIXZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号public: int __thiscall JMutex::Unlock(void) (?UnlockJMutexQAEHXZ) jrtplib.lib(rtppollthread.obj) : error LNK2001: 无法解析的外部符号public: int __thiscall JMutex::Unlock(void) (?UnlockJMutexQAEHXZ) jrtplib.lib(rtpsession.obj) : error LNK2019: 无法解析的外部符号public: int __thiscall JMutex::Lock(void) (?LockJMutexQAEHXZ)该符号在函数public: unsigned int __thiscall RTPSession::GetLocalSSRC(void) (?GetLocalSSRCRTPSessionQAEIXZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号public: int __thiscall JMutex::Lock(void) (?LockJMutexQAEHXZ) jrtplib.lib(rtppollthread.obj) : error LNK2001: 无法解析的外部符号public: int __thiscall JMutex::Lock(void) (?LockJMutexQAEHXZ) jrtplib.lib(rtpsession.obj) : error LNK2019: 无法解析的外部符号__imp__gethostname8该符号在函数private: int __thiscall RTPSession::CreateCNAME(unsigned char *,unsigned int *,bool) (?CreateCNAMERTPSessionAAEHPAEPAI_NZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号__imp__gethostname8 jrtplib.lib(rtpsources.obj) : error LNK2019: 无法解析的外部符号__imp__ntohl4该符号在函数public: unsigned int __thiscall RTCPSDESPacket::GetChunkSSRC(void)const (?GetChunkSSRCRTCPSDESPacketQBEIXZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号__imp__ntohl4 jrtplib.lib(rtppacket.obj) : error LNK2001: 无法解析的外部符号__imp__ntohl4 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__bind12该符号在函数public: virtual int __thiscall RTPUDPv4Transmitter::Create(unsigned int,class RTPTransmissionParams const *) (?CreateRTPUDPv4TransmitterUAEHIPBVRTPTransmissionParamsZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__htonl4该符号在函数public: virtual int __thiscall RTPUDPv4Transmitter::Create(unsigned int,class RTPTransmissionParams const *) (?CreateRTPUDPv4TransmitterUAEHIPBVRTPTransmissionParamsZ) 中被引用 jrtplib.lib(rtcpcompoundpacketbuilder.obj) : error LNK2001: 无法解析的外部符号__imp__htonl4 jrtplib.lib(rtppacket.obj) : error LNK2001: 无法解析的外部符号__imp__htonl4 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__htons4该符号在函数public: virtual int __thiscall RTPUDPv4Transmitter::Create(unsigned int,class RTPTransmissionParams const *) (?CreateRTPUDPv4TransmitterUAEHIPBVRTPTransmissionParamsZ) 中被引用 jrtplib.lib(rtcpcompoundpacketbuilder.obj) : error LNK2001: 无法解析的外部符号__imp__htons4 jrtplib.lib(rtppacket.obj) : error LNK2001: 无法解析的外部符号__imp__htons4 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__setsockopt20该符号在函数public: virtual int __thiscall RTPUDPv4Transmitter::Create(unsigned int,class RTPTransmissionParams const *) (?CreateRTPUDPv4TransmitterUAEHIPBVRTPTransmissionParamsZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__closesocket4该符号在函数public: virtual int __thiscall RTPUDPv4Transmitter::Create(unsigned int,class RTPTransmissionParams const *) (?CreateRTPUDPv4TransmitterUAEHIPBVRTPTransmissionParamsZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__socket12该符号在函数public: virtual int __thiscall RTPUDPv4Transmitter::Create(unsigned int,class RTPTransmissionParams const *) (?CreateRTPUDPv4TransmitterUAEHIPBVRTPTransmissionParamsZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__gethostbyaddr12该符号在函数public: virtual int __thiscall RTPUDPv4Transmitter::GetLocalHostName(unsigned char *,unsigned int *) (?GetLocalHostNameRTPUDPv4TransmitterUAEHPAEPAIZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__recv16该符号在函数public: virtual int __thiscall RTPUDPv4Transmitter::WaitForIncomingData(class RTPTime const ,bool *) (?WaitForIncomingDataRTPUDPv4TransmitterUAEHABVRTPTimePA_NZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号___WSAFDIsSet8该符号在函数public: virtual int __thiscall RTPUDPv4Transmitter::WaitForIncomingData(class RTPTime const ,bool *) (?WaitForIncomingDataRTPUDPv4TransmitterUAEHABVRTPTimePA_NZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__select20该符号在函数public: virtual int __thiscall RTPUDPv4Transmitter::WaitForIncomingData(class RTPTime const ,bool *) (?WaitForIncomingDataRTPUDPv4TransmitterUAEHABVRTPTimePA_NZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__sendto24该符号在函数public: virtual int __thiscall RTPUDPv4Transmitter::SendRTPData(void const *,unsigned int) (?SendRTPDataRTPUDPv4TransmitterUAEHPBXIZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__ntohs4该符号在函数private: int __thiscall RTPUDPv4Transmitter::PollSocket(bool) (?PollSocketRTPUDPv4TransmitterAAEH_NZ) 中被引用 jrtplib.lib(rtppacket.obj) : error LNK2001: 无法解析的外部符号__imp__ntohs4 jrtplib.lib(rtcpcompoundpacket.obj) : error LNK2001: 无法解析的外部符号__imp__ntohs4 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__recvfrom24该符号在函数private: int __thiscall RTPUDPv4Transmitter::PollSocket(bool) (?PollSocketRTPUDPv4TransmitterAAEH_NZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__ioctlsocket12该符号在函数private: int __thiscall RTPUDPv4Transmitter::PollSocket(bool) (?PollSocketRTPUDPv4TransmitterAAEH_NZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__accept12该符号在函数private: int __thiscall RTPUDPv4Transmitter::CreateAbortDescriptors(void) (?CreateAbortDescriptorsRTPUDPv4TransmitterAAEHXZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__connect12该符号在函数private: int __thiscall RTPUDPv4Transmitter::CreateAbortDescriptors(void) (?CreateAbortDescriptorsRTPUDPv4TransmitterAAEHXZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__inet_addr4该符号在函数private: int __thiscall RTPUDPv4Transmitter::CreateAbortDescriptors(void) (?CreateAbortDescriptorsRTPUDPv4TransmitterAAEHXZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__listen8该符号在函数private: int __thiscall RTPUDPv4Transmitter::CreateAbortDescriptors(void) (?CreateAbortDescriptorsRTPUDPv4TransmitterAAEHXZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__getsockname12该符号在函数private: int __thiscall RTPUDPv4Transmitter::CreateAbortDescriptors(void) (?CreateAbortDescriptorsRTPUDPv4TransmitterAAEHXZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__WSAIoctl36该符号在函数private: bool __thiscall RTPUDPv4Transmitter::GetLocalIPList_Interfaces(void) (?GetLocalIPList_InterfacesRTPUDPv4TransmitterAAE_NXZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__gethostbyname4该符号在函数private: void __thiscall RTPUDPv4Transmitter::GetLocalIPList_DNS(void) (?GetLocalIPList_DNSRTPUDPv4TransmitterAAEXXZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__send16该符号在函数private: void __thiscall RTPUDPv4Transmitter::AbortWaitInternal(void) (?AbortWaitInternalRTPUDPv4TransmitterAAEXXZ) 中被引用 jrtplib.lib(rtppollthread.obj) : error LNK2019: 无法解析的外部符号public: virtual __thiscall JThread::~JThread(void) (??1JThreadUAEXZ)该符号在函数__unwindfunclet$??0RTPPollThreadQAEAAVRTPSessionAAVRTCPSchedulerZ$0 中被引用 jrtplib.lib(rtppollthread.obj) : error LNK2019: 无法解析的外部符号public: __thiscall JThread::JThread(void) (??0JThreadQAEXZ)该符号在函数public: __thiscall RTPPollThread::RTPPollThread(class RTPSession ,class RTCPScheduler ) (??0RTPPollThreadQAEAAVRTPSessionAAVRTCPSchedulerZ) 中被引用 jrtplib.lib(rtppollthread.obj) : error LNK2019: 无法解析的外部符号public: int __thiscall JThread::Start(void) (?StartJThreadQAEHXZ)该符号在函数public: int __thiscall RTPPollThread::Start(class RTPTransmitter *) (?StartRTPPollThreadQAEHPAVRTPTransmitterZ) 中被引用 jrtplib.lib(rtppollthread.obj) : error LNK2019: 无法解析的外部符号public: bool __thiscall JThread::IsRunning(void) (?IsRunningJThreadQAE_NXZ)该符号在函数public: int __thiscall RTPPollThread::Start(class RTPTransmitter *) (?StartRTPPollThreadQAEHPAVRTPTransmitterZ) 中被引用 jrtplib.lib(rtppollthread.obj) : error LNK2019: 无法解析的外部符号public: int __thiscall JThread::Kill(void) (?KillJThreadQAEHXZ)该符号在函数public: void __thiscall RTPPollThread::Stop(void) (?StopRTPPollThreadQAEXXZ) 中被引用 jrtplib.lib(rtppollthread.obj) : error LNK2019: 无法解析的外部符号protected: void __thiscall JThread::ThreadStarted(void) (?ThreadStartedJThreadIAEXXZ)该符号在函数private: virtual void * __thiscall RTPPollThread::Thread(void) (?ThreadRTPPollThreadEAEPAXXZ) 中被引用 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?nCS.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?nCS.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?nCS.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?nCS.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?nCS.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?nCS.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?nCS.Jrtplib 然后我们要对这两个包进行编译首先是编译jthread这个包里面的工程编译成功后我编译了没有问题现在我们可以编译jrtplib了。在我们编译这个工程之前我们要将先前编译成功后的jthread后的得到的jthread.lib和jthread目录../src下的.h文件加到jrtplib这个工程中再编译不然会出现找不到xxx.h的错误和非法的引用等的编译或连接错误。 好了当我们成功了以上的步骤后就可以向配置directshow的baseclass那样来配置我们的编译器。 下面是vs 2005下一个简单的控制台工程的一部分 [cpp] view plain copy print ? #includestdafx.h #includertpsession.h #includeiostream #includestdio.h usingnamespace std; void CheckError(int inErrNum) { if(inErrNum 0) { coutError:RTPGetErrorString(inErrNum)endl; exit(-1); } } int _tmain(int argc, _TCHAR* argv[]) { RTPSession sess; return 0; } 在我们生成解决方案的时候我们会得到以下错误 ------ 已启动全部重新生成: 项目: RTPSender, 配置: Debug Win32 ------ 正在删除项目“RTPSender”(配置“Debug|Win32”)的中间文件和输出文件 正在编译... stdafx.cpp 正在编译... RTPSender.cpp 正在编译资源清单... 正在链接... RTPSender.obj : error LNK2019: 无法解析的外部符号class std::basic_stringchar,struct std::char_traitschar,class std::allocatorchar __cdecl RTPGetErrorString(int) (?RTPGetErrorStringYA?AV?$basic_stringDU?$char_traitsDstdV?$allocatorD2stdHZ)该符号在函数void __cdecl CheckError(int) (?CheckErrorYAXHZ) 中被引用 RTPSender.obj : error LNK2019: 无法解析的外部符号public: virtual __thiscall RTPSession::~RTPSession(void) (??1RTPSessionUAEXZ)该符号在函数_wmain 中被引用 RTPSender.obj : error LNK2019: 无法解析的外部符号public: __thiscall RTPSession::RTPSession(class RTPMemoryManager *) (??0RTPSessionQAEPAVRTPMemoryManagerZ)该符号在函数_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) (??1JMutexQAEXZ)该符号在函数__unwindfunclet$??0RTPSessionQAEPAVRTPMemoryManagerZ$0 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号public: __thiscall JMutex::~JMutex(void) (??1JMutexQAEXZ) jrtplib.lib(rtppollthread.obj) : error LNK2001: 无法解析的外部符号public: __thiscall JMutex::~JMutex(void) (??1JMutexQAEXZ) jrtplib.lib(rtpsession.obj) : error LNK2019: 无法解析的外部符号public: __thiscall JMutex::JMutex(void) (??0JMutexQAEXZ)该符号在函数public: __thiscall RTPSession::RTPSession(class RTPMemoryManager *) (??0RTPSessionQAEPAVRTPMemoryManagerZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号public: __thiscall JMutex::JMutex(void) (??0JMutexQAEXZ) jrtplib.lib(rtppollthread.obj) : error LNK2001: 无法解析的外部符号public: __thiscall JMutex::JMutex(void) (??0JMutexQAEXZ) jrtplib.lib(rtpsession.obj) : error LNK2019: 无法解析的外部符号public: int __thiscall JMutex::Init(void) (?InitJMutexQAEHXZ)该符号在函数private: int __thiscall RTPSession::InternalCreate(class RTPSessionParams const ) (?InternalCreateRTPSessionAAEHABVRTPSessionParamsZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号public: int __thiscall JMutex::Init(void) (?InitJMutexQAEHXZ) jrtplib.lib(rtppollthread.obj) : error LNK2001: 无法解析的外部符号public: int __thiscall JMutex::Init(void) (?InitJMutexQAEHXZ) jrtplib.lib(rtpsession.obj) : error LNK2019: 无法解析的外部符号public: int __thiscall JMutex::Unlock(void) (?UnlockJMutexQAEHXZ)该符号在函数public: unsigned int __thiscall RTPSession::GetLocalSSRC(void) (?GetLocalSSRCRTPSessionQAEIXZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号public: int __thiscall JMutex::Unlock(void) (?UnlockJMutexQAEHXZ) jrtplib.lib(rtppollthread.obj) : error LNK2001: 无法解析的外部符号public: int __thiscall JMutex::Unlock(void) (?UnlockJMutexQAEHXZ) jrtplib.lib(rtpsession.obj) : error LNK2019: 无法解析的外部符号public: int __thiscall JMutex::Lock(void) (?LockJMutexQAEHXZ)该符号在函数public: unsigned int __thiscall RTPSession::GetLocalSSRC(void) (?GetLocalSSRCRTPSessionQAEIXZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号public: int __thiscall JMutex::Lock(void) (?LockJMutexQAEHXZ) jrtplib.lib(rtppollthread.obj) : error LNK2001: 无法解析的外部符号public: int __thiscall JMutex::Lock(void) (?LockJMutexQAEHXZ) jrtplib.lib(rtpsession.obj) : error LNK2019: 无法解析的外部符号__imp__gethostname8该符号在函数private: int __thiscall RTPSession::CreateCNAME(unsigned char *,unsigned int *,bool) (?CreateCNAMERTPSessionAAEHPAEPAI_NZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号__imp__gethostname8 jrtplib.lib(rtpsources.obj) : error LNK2019: 无法解析的外部符号__imp__ntohl4该符号在函数public: unsigned int __thiscall RTCPSDESPacket::GetChunkSSRC(void)const (?GetChunkSSRCRTCPSDESPacketQBEIXZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号__imp__ntohl4 jrtplib.lib(rtppacket.obj) : error LNK2001: 无法解析的外部符号__imp__ntohl4 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__bind12该符号在函数public: virtual int __thiscall RTPUDPv4Transmitter::Create(unsigned int,class RTPTransmissionParams const *) (?CreateRTPUDPv4TransmitterUAEHIPBVRTPTransmissionParamsZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__htonl4该符号在函数public: virtual int __thiscall RTPUDPv4Transmitter::Create(unsigned int,class RTPTransmissionParams const *) (?CreateRTPUDPv4TransmitterUAEHIPBVRTPTransmissionParamsZ) 中被引用 jrtplib.lib(rtcpcompoundpacketbuilder.obj) : error LNK2001: 无法解析的外部符号__imp__htonl4 jrtplib.lib(rtppacket.obj) : error LNK2001: 无法解析的外部符号__imp__htonl4 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__htons4该符号在函数public: virtual int __thiscall RTPUDPv4Transmitter::Create(unsigned int,class RTPTransmissionParams const *) (?CreateRTPUDPv4TransmitterUAEHIPBVRTPTransmissionParamsZ) 中被引用 jrtplib.lib(rtcpcompoundpacketbuilder.obj) : error LNK2001: 无法解析的外部符号__imp__htons4 jrtplib.lib(rtppacket.obj) : error LNK2001: 无法解析的外部符号__imp__htons4 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__setsockopt20该符号在函数public: virtual int __thiscall RTPUDPv4Transmitter::Create(unsigned int,class RTPTransmissionParams const *) (?CreateRTPUDPv4TransmitterUAEHIPBVRTPTransmissionParamsZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__closesocket4该符号在函数public: virtual int __thiscall RTPUDPv4Transmitter::Create(unsigned int,class RTPTransmissionParams const *) (?CreateRTPUDPv4TransmitterUAEHIPBVRTPTransmissionParamsZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__socket12该符号在函数public: virtual int __thiscall RTPUDPv4Transmitter::Create(unsigned int,class RTPTransmissionParams const *) (?CreateRTPUDPv4TransmitterUAEHIPBVRTPTransmissionParamsZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__gethostbyaddr12该符号在函数public: virtual int __thiscall RTPUDPv4Transmitter::GetLocalHostName(unsigned char *,unsigned int *) (?GetLocalHostNameRTPUDPv4TransmitterUAEHPAEPAIZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__recv16该符号在函数public: virtual int __thiscall RTPUDPv4Transmitter::WaitForIncomingData(class RTPTime const ,bool *) (?WaitForIncomingDataRTPUDPv4TransmitterUAEHABVRTPTimePA_NZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号___WSAFDIsSet8该符号在函数public: virtual int __thiscall RTPUDPv4Transmitter::WaitForIncomingData(class RTPTime const ,bool *) (?WaitForIncomingDataRTPUDPv4TransmitterUAEHABVRTPTimePA_NZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__select20该符号在函数public: virtual int __thiscall RTPUDPv4Transmitter::WaitForIncomingData(class RTPTime const ,bool *) (?WaitForIncomingDataRTPUDPv4TransmitterUAEHABVRTPTimePA_NZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__sendto24该符号在函数public: virtual int __thiscall RTPUDPv4Transmitter::SendRTPData(void const *,unsigned int) (?SendRTPDataRTPUDPv4TransmitterUAEHPBXIZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__ntohs4该符号在函数private: int __thiscall RTPUDPv4Transmitter::PollSocket(bool) (?PollSocketRTPUDPv4TransmitterAAEH_NZ) 中被引用 jrtplib.lib(rtppacket.obj) : error LNK2001: 无法解析的外部符号__imp__ntohs4 jrtplib.lib(rtcpcompoundpacket.obj) : error LNK2001: 无法解析的外部符号__imp__ntohs4 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__recvfrom24该符号在函数private: int __thiscall RTPUDPv4Transmitter::PollSocket(bool) (?PollSocketRTPUDPv4TransmitterAAEH_NZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__ioctlsocket12该符号在函数private: int __thiscall RTPUDPv4Transmitter::PollSocket(bool) (?PollSocketRTPUDPv4TransmitterAAEH_NZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__accept12该符号在函数private: int __thiscall RTPUDPv4Transmitter::CreateAbortDescriptors(void) (?CreateAbortDescriptorsRTPUDPv4TransmitterAAEHXZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__connect12该符号在函数private: int __thiscall RTPUDPv4Transmitter::CreateAbortDescriptors(void) (?CreateAbortDescriptorsRTPUDPv4TransmitterAAEHXZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__inet_addr4该符号在函数private: int __thiscall RTPUDPv4Transmitter::CreateAbortDescriptors(void) (?CreateAbortDescriptorsRTPUDPv4TransmitterAAEHXZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__listen8该符号在函数private: int __thiscall RTPUDPv4Transmitter::CreateAbortDescriptors(void) (?CreateAbortDescriptorsRTPUDPv4TransmitterAAEHXZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__getsockname12该符号在函数private: int __thiscall RTPUDPv4Transmitter::CreateAbortDescriptors(void) (?CreateAbortDescriptorsRTPUDPv4TransmitterAAEHXZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__WSAIoctl36该符号在函数private: bool __thiscall RTPUDPv4Transmitter::GetLocalIPList_Interfaces(void) (?GetLocalIPList_InterfacesRTPUDPv4TransmitterAAE_NXZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__gethostbyname4该符号在函数private: void __thiscall RTPUDPv4Transmitter::GetLocalIPList_DNS(void) (?GetLocalIPList_DNSRTPUDPv4TransmitterAAEXXZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__send16该符号在函数private: void __thiscall RTPUDPv4Transmitter::AbortWaitInternal(void) (?AbortWaitInternalRTPUDPv4TransmitterAAEXXZ) 中被引用 jrtplib.lib(rtppollthread.obj) : error LNK2019: 无法解析的外部符号public: virtual __thiscall JThread::~JThread(void) (??1JThreadUAEXZ)该符号在函数__unwindfunclet$??0RTPPollThreadQAEAAVRTPSessionAAVRTCPSchedulerZ$0 中被引用 jrtplib.lib(rtppollthread.obj) : error LNK2019: 无法解析的外部符号public: __thiscall JThread::JThread(void) (??0JThreadQAEXZ)该符号在函数public: __thiscall RTPPollThread::RTPPollThread(class RTPSession ,class RTCPScheduler ) (??0RTPPollThreadQAEAAVRTPSessionAAVRTCPSchedulerZ) 中被引用 jrtplib.lib(rtppollthread.obj) : error LNK2019: 无法解析的外部符号public: int __thiscall JThread::Start(void) (?StartJThreadQAEHXZ)该符号在函数public: int __thiscall RTPPollThread::Start(class RTPTransmitter *) (?StartRTPPollThreadQAEHPAVRTPTransmitterZ) 中被引用 jrtplib.lib(rtppollthread.obj) : error LNK2019: 无法解析的外部符号public: bool __thiscall JThread::IsRunning(void) (?IsRunningJThreadQAE_NXZ)该符号在函数public: int __thiscall RTPPollThread::Start(class RTPTransmitter *) (?StartRTPPollThreadQAEHPAVRTPTransmitterZ) 中被引用 jrtplib.lib(rtppollthread.obj) : error LNK2019: 无法解析的外部符号public: int __thiscall JThread::Kill(void) (?KillJThreadQAEHXZ)该符号在函数public: void __thiscall RTPPollThread::Stop(void) (?StopRTPPollThreadQAEXXZ) 中被引用 jrtplib.lib(rtppollthread.obj) : error LNK2019: 无法解析的外部符号protected: void __thiscall JThread::ThreadStarted(void) (?ThreadStartedJThreadIAEXXZ)该符号在函数private: virtual void * __thiscall RTPPollThread::Thread(void) (?ThreadRTPPollThreadEAEPAXXZ) 中被引用 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?nCS.Jrtplib 然后我们要对这两个包进行编译首先是编译jthread这个包里面的工程编译成功后我编译了没有问题现在我们可以编译jrtplib了。在我们编译这个工程之前我们要将先前编译成功后的jthread后的得到的jthread.lib和jthread目录../src下的.h文件加到jrtplib这个工程中再编译不然会出现找不到xxx.h的错误和非法的引用等的编译或连接错误。 好了当我们成功了以上的步骤后就可以向配置directshow的baseclass那样来配置我们的编译器。 下面是vs 2005下一个简单的控制台工程的一部分 [cpp] view plain copy print ? #includestdafx.h #includertpsession.h #includeiostream #includestdio.h usingnamespace std; void CheckError(int inErrNum) { if(inErrNum 0) { coutError:RTPGetErrorString(inErrNum)endl; exit(-1); } } int _tmain(int argc, _TCHAR* argv[]) { RTPSession sess; return 0; } 在我们生成解决方案的时候我们会得到以下错误 ------ 已启动全部重新生成: 项目: RTPSender, 配置: Debug Win32 ------ 正在删除项目“RTPSender”(配置“Debug|Win32”)的中间文件和输出文件 正在编译... stdafx.cpp 正在编译... RTPSender.cpp 正在编译资源清单... 正在链接... RTPSender.obj : error LNK2019: 无法解析的外部符号class std::basic_stringchar,struct std::char_traitschar,class std::allocatorchar __cdecl RTPGetErrorString(int) (?RTPGetErrorStringYA?AV?$basic_stringDU?$char_traitsDstdV?$allocatorD2stdHZ)该符号在函数void __cdecl CheckError(int) (?CheckErrorYAXHZ) 中被引用 RTPSender.obj : error LNK2019: 无法解析的外部符号public: virtual __thiscall RTPSession::~RTPSession(void) (??1RTPSessionUAEXZ)该符号在函数_wmain 中被引用 RTPSender.obj : error LNK2019: 无法解析的外部符号public: __thiscall RTPSession::RTPSession(class RTPMemoryManager *) (??0RTPSessionQAEPAVRTPMemoryManagerZ)该符号在函数_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) (??1JMutexQAEXZ)该符号在函数__unwindfunclet$??0RTPSessionQAEPAVRTPMemoryManagerZ$0 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号public: __thiscall JMutex::~JMutex(void) (??1JMutexQAEXZ) jrtplib.lib(rtppollthread.obj) : error LNK2001: 无法解析的外部符号public: __thiscall JMutex::~JMutex(void) (??1JMutexQAEXZ) jrtplib.lib(rtpsession.obj) : error LNK2019: 无法解析的外部符号public: __thiscall JMutex::JMutex(void) (??0JMutexQAEXZ)该符号在函数public: __thiscall RTPSession::RTPSession(class RTPMemoryManager *) (??0RTPSessionQAEPAVRTPMemoryManagerZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号public: __thiscall JMutex::JMutex(void) (??0JMutexQAEXZ) jrtplib.lib(rtppollthread.obj) : error LNK2001: 无法解析的外部符号public: __thiscall JMutex::JMutex(void) (??0JMutexQAEXZ) jrtplib.lib(rtpsession.obj) : error LNK2019: 无法解析的外部符号public: int __thiscall JMutex::Init(void) (?InitJMutexQAEHXZ)该符号在函数private: int __thiscall RTPSession::InternalCreate(class RTPSessionParams const ) (?InternalCreateRTPSessionAAEHABVRTPSessionParamsZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号public: int __thiscall JMutex::Init(void) (?InitJMutexQAEHXZ) jrtplib.lib(rtppollthread.obj) : error LNK2001: 无法解析的外部符号public: int __thiscall JMutex::Init(void) (?InitJMutexQAEHXZ) jrtplib.lib(rtpsession.obj) : error LNK2019: 无法解析的外部符号public: int __thiscall JMutex::Unlock(void) (?UnlockJMutexQAEHXZ)该符号在函数public: unsigned int __thiscall RTPSession::GetLocalSSRC(void) (?GetLocalSSRCRTPSessionQAEIXZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号public: int __thiscall JMutex::Unlock(void) (?UnlockJMutexQAEHXZ) jrtplib.lib(rtppollthread.obj) : error LNK2001: 无法解析的外部符号public: int __thiscall JMutex::Unlock(void) (?UnlockJMutexQAEHXZ) jrtplib.lib(rtpsession.obj) : error LNK2019: 无法解析的外部符号public: int __thiscall JMutex::Lock(void) (?LockJMutexQAEHXZ)该符号在函数public: unsigned int __thiscall RTPSession::GetLocalSSRC(void) (?GetLocalSSRCRTPSessionQAEIXZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号public: int __thiscall JMutex::Lock(void) (?LockJMutexQAEHXZ) jrtplib.lib(rtppollthread.obj) : error LNK2001: 无法解析的外部符号public: int __thiscall JMutex::Lock(void) (?LockJMutexQAEHXZ) jrtplib.lib(rtpsession.obj) : error LNK2019: 无法解析的外部符号__imp__gethostname8该符号在函数private: int __thiscall RTPSession::CreateCNAME(unsigned char *,unsigned int *,bool) (?CreateCNAMERTPSessionAAEHPAEPAI_NZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号__imp__gethostname8 jrtplib.lib(rtpsources.obj) : error LNK2019: 无法解析的外部符号__imp__ntohl4该符号在函数public: unsigned int __thiscall RTCPSDESPacket::GetChunkSSRC(void)const (?GetChunkSSRCRTCPSDESPacketQBEIXZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2001: 无法解析的外部符号__imp__ntohl4 jrtplib.lib(rtppacket.obj) : error LNK2001: 无法解析的外部符号__imp__ntohl4 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__bind12该符号在函数public: virtual int __thiscall RTPUDPv4Transmitter::Create(unsigned int,class RTPTransmissionParams const *) (?CreateRTPUDPv4TransmitterUAEHIPBVRTPTransmissionParamsZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__htonl4该符号在函数public: virtual int __thiscall RTPUDPv4Transmitter::Create(unsigned int,class RTPTransmissionParams const *) (?CreateRTPUDPv4TransmitterUAEHIPBVRTPTransmissionParamsZ) 中被引用 jrtplib.lib(rtcpcompoundpacketbuilder.obj) : error LNK2001: 无法解析的外部符号__imp__htonl4 jrtplib.lib(rtppacket.obj) : error LNK2001: 无法解析的外部符号__imp__htonl4 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__htons4该符号在函数public: virtual int __thiscall RTPUDPv4Transmitter::Create(unsigned int,class RTPTransmissionParams const *) (?CreateRTPUDPv4TransmitterUAEHIPBVRTPTransmissionParamsZ) 中被引用 jrtplib.lib(rtcpcompoundpacketbuilder.obj) : error LNK2001: 无法解析的外部符号__imp__htons4 jrtplib.lib(rtppacket.obj) : error LNK2001: 无法解析的外部符号__imp__htons4 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__setsockopt20该符号在函数public: virtual int __thiscall RTPUDPv4Transmitter::Create(unsigned int,class RTPTransmissionParams const *) (?CreateRTPUDPv4TransmitterUAEHIPBVRTPTransmissionParamsZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__closesocket4该符号在函数public: virtual int __thiscall RTPUDPv4Transmitter::Create(unsigned int,class RTPTransmissionParams const *) (?CreateRTPUDPv4TransmitterUAEHIPBVRTPTransmissionParamsZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__socket12该符号在函数public: virtual int __thiscall RTPUDPv4Transmitter::Create(unsigned int,class RTPTransmissionParams const *) (?CreateRTPUDPv4TransmitterUAEHIPBVRTPTransmissionParamsZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__gethostbyaddr12该符号在函数public: virtual int __thiscall RTPUDPv4Transmitter::GetLocalHostName(unsigned char *,unsigned int *) (?GetLocalHostNameRTPUDPv4TransmitterUAEHPAEPAIZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__recv16该符号在函数public: virtual int __thiscall RTPUDPv4Transmitter::WaitForIncomingData(class RTPTime const ,bool *) (?WaitForIncomingDataRTPUDPv4TransmitterUAEHABVRTPTimePA_NZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号___WSAFDIsSet8该符号在函数public: virtual int __thiscall RTPUDPv4Transmitter::WaitForIncomingData(class RTPTime const ,bool *) (?WaitForIncomingDataRTPUDPv4TransmitterUAEHABVRTPTimePA_NZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__select20该符号在函数public: virtual int __thiscall RTPUDPv4Transmitter::WaitForIncomingData(class RTPTime const ,bool *) (?WaitForIncomingDataRTPUDPv4TransmitterUAEHABVRTPTimePA_NZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__sendto24该符号在函数public: virtual int __thiscall RTPUDPv4Transmitter::SendRTPData(void const *,unsigned int) (?SendRTPDataRTPUDPv4TransmitterUAEHPBXIZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__ntohs4该符号在函数private: int __thiscall RTPUDPv4Transmitter::PollSocket(bool) (?PollSocketRTPUDPv4TransmitterAAEH_NZ) 中被引用 jrtplib.lib(rtppacket.obj) : error LNK2001: 无法解析的外部符号__imp__ntohs4 jrtplib.lib(rtcpcompoundpacket.obj) : error LNK2001: 无法解析的外部符号__imp__ntohs4 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__recvfrom24该符号在函数private: int __thiscall RTPUDPv4Transmitter::PollSocket(bool) (?PollSocketRTPUDPv4TransmitterAAEH_NZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__ioctlsocket12该符号在函数private: int __thiscall RTPUDPv4Transmitter::PollSocket(bool) (?PollSocketRTPUDPv4TransmitterAAEH_NZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__accept12该符号在函数private: int __thiscall RTPUDPv4Transmitter::CreateAbortDescriptors(void) (?CreateAbortDescriptorsRTPUDPv4TransmitterAAEHXZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__connect12该符号在函数private: int __thiscall RTPUDPv4Transmitter::CreateAbortDescriptors(void) (?CreateAbortDescriptorsRTPUDPv4TransmitterAAEHXZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__inet_addr4该符号在函数private: int __thiscall RTPUDPv4Transmitter::CreateAbortDescriptors(void) (?CreateAbortDescriptorsRTPUDPv4TransmitterAAEHXZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__listen8该符号在函数private: int __thiscall RTPUDPv4Transmitter::CreateAbortDescriptors(void) (?CreateAbortDescriptorsRTPUDPv4TransmitterAAEHXZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__getsockname12该符号在函数private: int __thiscall RTPUDPv4Transmitter::CreateAbortDescriptors(void) (?CreateAbortDescriptorsRTPUDPv4TransmitterAAEHXZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__WSAIoctl36该符号在函数private: bool __thiscall RTPUDPv4Transmitter::GetLocalIPList_Interfaces(void) (?GetLocalIPList_InterfacesRTPUDPv4TransmitterAAE_NXZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__gethostbyname4该符号在函数private: void __thiscall RTPUDPv4Transmitter::GetLocalIPList_DNS(void) (?GetLocalIPList_DNSRTPUDPv4TransmitterAAEXXZ) 中被引用 jrtplib.lib(rtpudpv4transmitter.obj) : error LNK2019: 无法解析的外部符号__imp__send16该符号在函数private: void __thiscall RTPUDPv4Transmitter::AbortWaitInternal(void) (?AbortWaitInternalRTPUDPv4TransmitterAAEXXZ) 中被引用 jrtplib.lib(rtppollthread.obj) : error LNK2019: 无法解析的外部符号public: virtual __thiscall JThread::~JThread(void) (??1JThreadUAEXZ)该符号在函数__unwindfunclet$??0RTPPollThreadQAEAAVRTPSessionAAVRTCPSchedulerZ$0 中被引用 jrtplib.lib(rtppollthread.obj) : error LNK2019: 无法解析的外部符号public: __thiscall JThread::JThread(void) (??0JThreadQAEXZ)该符号在函数public: __thiscall RTPPollThread::RTPPollThread(class RTPSession ,class RTCPScheduler ) (??0RTPPollThreadQAEAAVRTPSessionAAVRTCPSchedulerZ) 中被引用 jrtplib.lib(rtppollthread.obj) : error LNK2019: 无法解析的外部符号public: int __thiscall JThread::Start(void) (?StartJThreadQAEHXZ)该符号在函数public: int __thiscall RTPPollThread::Start(class RTPTransmitter *) (?StartRTPPollThreadQAEHPAVRTPTransmitterZ) 中被引用 jrtplib.lib(rtppollthread.obj) : error LNK2019: 无法解析的外部符号public: bool __thiscall JThread::IsRunning(void) (?IsRunningJThreadQAE_NXZ)该符号在函数public: int __thiscall RTPPollThread::Start(class RTPTransmitter *) (?StartRTPPollThreadQAEHPAVRTPTransmitterZ) 中被引用 jrtplib.lib(rtppollthread.obj) : error LNK2019: 无法解析的外部符号public: int __thiscall JThread::Kill(void) (?KillJThreadQAEHXZ)该符号在函数public: void __thiscall RTPPollThread::Stop(void) (?StopRTPPollThreadQAEXXZ) 中被引用 jrtplib.lib(rtppollthread.obj) : error LNK2019: 无法解析的外部符号protected: void __thiscall JThread::ThreadStarted(void) (?ThreadStartedJThreadIAEXXZ)该符号在函数private: virtual void * __thiscall RTPPollThread::Thread(void) (?ThreadRTPPollThreadEAEPAXXZ) 中被引用 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基本配置的差不多了当然我们可能在用特定的函数是还需要一些特定的库。