關於開源的jrtplib的編譯和應用程序的配置



關於開源的RTP——jrtplib的使用
 
首先,我向我們應該先到下面的鏈接網站上下載jrtplib和jthread這兩個包
 
然後,我們要對這兩個包進行編譯,首先是編譯jthread這個包裏面的工程,編譯成功後(我編譯了,沒有問題),現在我們可以編譯jrtplib了。在我們編譯這個工程之前,我們要將先前編譯成功後的jthread後的得到的jthread.lib和jthread目錄../src下的.h文件加到jrtplib這個工程中再編譯,不然會出現找不到xxx.h的錯誤和非法的引用等的編譯或連接錯誤。
 
好了,當我們成功了以上的步驟後,就可以向配置directshow的baseclass那樣來配置我們的編譯器。
 
下面是vs 2005下一個簡單的控制檯工程的一部分:
關於開源的RTP——jrtplib的使用
 
首先,我向我們應該先到下面的鏈接網站上下載jrtplib和jthread這兩個包
 
然後,我們要對這兩個包進行編譯,首先是編譯jthread這個包裏面的工程,編譯成功後(我編譯了,沒有問題),現在我們可以編譯jrtplib了。在我們編譯這個工程之前,我們要將先前編譯成功後的jthread後的得到的jthread.lib和jthread目錄../src下的.h文件加到jrtplib這個工程中再編譯,不然會出現找不到xxx.h的錯誤和非法的引用等的編譯或連接錯誤。
 
好了,當我們成功了以上的步驟後,就可以向配置directshow的baseclass那樣來配置我們的編譯器。
 
下面是vs 2005下一個簡單的控制檯工程的一部分:



關於開源的RTP——jrtplib的使用
 
首先,我向我們應該先到下面的鏈接網站上下載jrtplib和jthread這兩個包
 
然後,我們要對這兩個包進行編譯,首先是編譯jthread這個包裏面的工程,編譯成功後(我編譯了,沒有問題),現在我們可以編譯jrtplib了。在我們編譯這個工程之前,我們要將先前編譯成功後的jthread後的得到的jthread.lib和jthread目錄../src下的.h文件加到jrtplib這個工程中再編譯,不然會出現找不到xxx.h的錯誤和非法的引用等的編譯或連接錯誤。
 
好了,當我們成功了以上的步驟後,就可以向配置directshow的baseclass那樣來配置我們的編譯器。
 
下面是vs 2005下一個簡單的控制檯工程的一部分:


關於開源的RTP——jrtplib的使用
 
首先,我向我們應該先到下面的鏈接網站上下載jrtplib和jthread這兩個包
 
然後,我們要對這兩個包進行編譯,首先是編譯jthread這個包裏面的工程,編譯成功後(我編譯了,沒有問題),現在我們可以編譯jrtplib了。在我們編譯這個工程之前,我們要將先前編譯成功後的jthread後的得到的jthread.lib和jthread目錄../src下的.h文件加到jrtplib這個工程中再編譯,不然會出現找不到xxx.h的錯誤和非法的引用等的編譯或連接錯誤。
 
好了,當我們成功了以上的步驟後,就可以向配置directshow的baseclass那樣來配置我們的編譯器。
 
下面是vs 2005下一個簡單的控制檯工程的一部分:
關於開源的RTP——jrtplib的使用
 
首先,我向我們應該先到下面的鏈接網站上下載jrtplib和jthread這兩個包
 
然後,我們要對這兩個包進行編譯,首先是編譯jthread這個包裏面的工程,編譯成功後(我編譯了,沒有問題),現在我們可以編譯jrtplib了。在我們編譯這個工程之前,我們要將先前編譯成功後的jthread後的得到的jthread.lib和jthread目錄../src下的.h文件加到jrtplib這個工程中再編譯,不然會出現找不到xxx.h的錯誤和非法的引用等的編譯或連接錯誤。
 
好了,當我們成功了以上的步驟後,就可以向配置directshow的baseclass那樣來配置我們的編譯器。
 
下面是vs 2005下一個簡單的控制檯工程的一部分:

關於開源的RTP——jrtplib的使用
 
首先,我向我們應該先到下面的鏈接網站上下載jrtplib和jthread這兩個包
 
然後,我們要對這兩個包進行編譯,首先是編譯jthread這個包裏面的工程,編譯成功後(我編譯了,沒有問題),現在我們可以編譯jrtplib了。在我們編譯這個工程之前,我們要將先前編譯成功後的jthread後的得到的jthread.lib和jthread目錄../src下的.h文件加到jrtplib這個工程中再編譯,不然會出現找不到xxx.h的錯誤和非法的引用等的編譯或連接錯誤。
 
好了,當我們成功了以上的步驟後,就可以向配置directshow的baseclass那樣來配置我們的編譯器。
 
下面是vs 2005下一個簡單的控制檯工程的一部分:



關於開源的RTP——jrtplib的使用
 
首先,我向我們應該先到下面的鏈接網站上下載jrtplib和jthread這兩個包
 
然後,我們要對這兩個包進行編譯,首先是編譯jthread這個包裏面的工程,編譯成功後(我編譯了,沒有問題),現在我們可以編譯jrtplib了。在我們編譯這個工程之前,我們要將先前編譯成功後的jthread後的得到的jthread.lib和jthread目錄../src下的.h文件加到jrtplib這個工程中再編譯,不然會出現找不到xxx.h的錯誤和非法的引用等的編譯或連接錯誤。
 
好了,當我們成功了以上的步驟後,就可以向配置directshow的baseclass那樣來配置我們的編譯器。
 
下面是vs 2005下一個簡單的控制檯工程的一部分:
  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這兩個包
 
然後,我們要對這兩個包進行編譯,首先是編譯jthread這個包裏面的工程,編譯成功後(我編譯了,沒有問題),現在我們可以編譯jrtplib了。在我們編譯這個工程之前,我們要將先前編譯成功後的jthread後的得到的jthread.lib和jthread目錄../src下的.h文件加到jrtplib這個工程中再編譯,不然會出現找不到xxx.h的錯誤和非法的引用等的編譯或連接錯誤。
 
好了,當我們成功了以上的步驟後,就可以向配置directshow的baseclass那樣來配置我們的編譯器。
 
下面是vs 2005下一個簡單的控制檯工程的一部分:
關於開源的RTP——jrtplib的使用
 
首先,我向我們應該先到下面的鏈接網站上下載jrtplib和jthread這兩個包
 
然後,我們要對這兩個包進行編譯,首先是編譯jthread這個包裏面的工程,編譯成功後(我編譯了,沒有問題),現在我們可以編譯jrtplib了。在我們編譯這個工程之前,我們要將先前編譯成功後的jthread後的得到的jthread.lib和jthread目錄../src下的.h文件加到jrtplib這個工程中再編譯,不然會出現找不到xxx.h的錯誤和非法的引用等的編譯或連接錯誤。
 
好了,當我們成功了以上的步驟後,就可以向配置directshow的baseclass那樣來配置我們的編譯器。
 
下面是vs 2005下一個簡單的控制檯工程的一部分:



關於開源的RTP——jrtplib的使用
 
首先,我向我們應該先到下面的鏈接網站上下載jrtplib和jthread這兩個包
 
然後,我們要對這兩個包進行編譯,首先是編譯jthread這個包裏面的工程,編譯成功後(我編譯了,沒有問題),現在我們可以編譯jrtplib了。在我們編譯這個工程之前,我們要將先前編譯成功後的jthread後的得到的jthread.lib和jthread目錄../src下的.h文件加到jrtplib這個工程中再編譯,不然會出現找不到xxx.h的錯誤和非法的引用等的編譯或連接錯誤。
 
好了,當我們成功了以上的步驟後,就可以向配置directshow的baseclass那樣來配置我們的編譯器。
 
下面是vs 2005下一個簡單的控制檯工程的一部分:


關於開源的RTP——jrtplib的使用
 
首先,我向我們應該先到下面的鏈接網站上下載jrtplib和jthread這兩個包
 
然後,我們要對這兩個包進行編譯,首先是編譯jthread這個包裏面的工程,編譯成功後(我編譯了,沒有問題),現在我們可以編譯jrtplib了。在我們編譯這個工程之前,我們要將先前編譯成功後的jthread後的得到的jthread.lib和jthread目錄../src下的.h文件加到jrtplib這個工程中再編譯,不然會出現找不到xxx.h的錯誤和非法的引用等的編譯或連接錯誤。
 
好了,當我們成功了以上的步驟後,就可以向配置directshow的baseclass那樣來配置我們的編譯器。
 
下面是vs 2005下一個簡單的控制檯工程的一部分:
關於開源的RTP——jrtplib的使用
 
首先,我向我們應該先到下面的鏈接網站上下載jrtplib和jthread這兩個包
 
然後,我們要對這兩個包進行編譯,首先是編譯jthread這個包裏面的工程,編譯成功後(我編譯了,沒有問題),現在我們可以編譯jrtplib了。在我們編譯這個工程之前,我們要將先前編譯成功後的jthread後的得到的jthread.lib和jthread目錄../src下的.h文件加到jrtplib這個工程中再編譯,不然會出現找不到xxx.h的錯誤和非法的引用等的編譯或連接錯誤。
 
好了,當我們成功了以上的步驟後,就可以向配置directshow的baseclass那樣來配置我們的編譯器。
 
下面是vs 2005下一個簡單的控制檯工程的一部分:

關於開源的RTP——jrtplib的使用
 
首先,我向我們應該先到下面的鏈接網站上下載jrtplib和jthread這兩個包
 
然後,我們要對這兩個包進行編譯,首先是編譯jthread這個包裏面的工程,編譯成功後(我編譯了,沒有問題),現在我們可以編譯jrtplib了。在我們編譯這個工程之前,我們要將先前編譯成功後的jthread後的得到的jthread.lib和jthread目錄../src下的.h文件加到jrtplib這個工程中再編譯,不然會出現找不到xxx.h的錯誤和非法的引用等的編譯或連接錯誤。
 
好了,當我們成功了以上的步驟後,就可以向配置directshow的baseclass那樣來配置我們的編譯器。
 
下面是vs 2005下一個簡單的控制檯工程的一部分:

關於開源的RTP——jrtplib的使用
 
首先,我向我們應該先到下面的鏈接網站上下載jrtplib和jthread這兩個包
 
然後,我們要對這兩個包進行編譯,首先是編譯jthread這個包裏面的工程,編譯成功後(我編譯了,沒有問題),現在我們可以編譯jrtplib了。在我們編譯這個工程之前,我們要將先前編譯成功後的jthread後的得到的jthread.lib和jthread目錄../src下的.h文件加到jrtplib這個工程中再編譯,不然會出現找不到xxx.h的錯誤和非法的引用等的編譯或連接錯誤。
 
好了,當我們成功了以上的步驟後,就可以向配置directshow的baseclass那樣來配置我們的編譯器。
 
下面是vs 2005下一個簡單的控制檯工程的一部分:
  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這兩個包
 
然後,我們要對這兩個包進行編譯,首先是編譯jthread這個包裏面的工程,編譯成功後(我編譯了,沒有問題),現在我們可以編譯jrtplib了。在我們編譯這個工程之前,我們要將先前編譯成功後的jthread後的得到的jthread.lib和jthread目錄../src下的.h文件加到jrtplib這個工程中再編譯,不然會出現找不到xxx.h的錯誤和非法的引用等的編譯或連接錯誤。
 
好了,當我們成功了以上的步驟後,就可以向配置directshow的baseclass那樣來配置我們的編譯器。
 
下面是vs 2005下一個簡單的控制檯工程的一部分:
  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這兩個包
 
然後,我們要對這兩個包進行編譯,首先是編譯jthread這個包裏面的工程,編譯成功後(我編譯了,沒有問題),現在我們可以編譯jrtplib了。在我們編譯這個工程之前,我們要將先前編譯成功後的jthread後的得到的jthread.lib和jthread目錄../src下的.h文件加到jrtplib這個工程中再編譯,不然會出現找不到xxx.h的錯誤和非法的引用等的編譯或連接錯誤。
 
好了,當我們成功了以上的步驟後,就可以向配置directshow的baseclass那樣來配置我們的編譯器。
 
下面是vs 2005下一個簡單的控制檯工程的一部分:
關於開源的RTP——jrtplib的使用
 
首先,我向我們應該先到下面的鏈接網站上下載jrtplib和jthread這兩個包
 
然後,我們要對這兩個包進行編譯,首先是編譯jthread這個包裏面的工程,編譯成功後(我編譯了,沒有問題),現在我們可以編譯jrtplib了。在我們編譯這個工程之前,我們要將先前編譯成功後的jthread後的得到的jthread.lib和jthread目錄../src下的.h文件加到jrtplib這個工程中再編譯,不然會出現找不到xxx.h的錯誤和非法的引用等的編譯或連接錯誤。
 
好了,當我們成功了以上的步驟後,就可以向配置directshow的baseclass那樣來配置我們的編譯器。
 
下面是vs 2005下一個簡單的控制檯工程的一部分:



關於開源的RTP——jrtplib的使用
 
首先,我向我們應該先到下面的鏈接網站上下載jrtplib和jthread這兩個包
 
然後,我們要對這兩個包進行編譯,首先是編譯jthread這個包裏面的工程,編譯成功後(我編譯了,沒有問題),現在我們可以編譯jrtplib了。在我們編譯這個工程之前,我們要將先前編譯成功後的jthread後的得到的jthread.lib和jthread目錄../src下的.h文件加到jrtplib這個工程中再編譯,不然會出現找不到xxx.h的錯誤和非法的引用等的編譯或連接錯誤。
 
好了,當我們成功了以上的步驟後,就可以向配置directshow的baseclass那樣來配置我們的編譯器。
 
下面是vs 2005下一個簡單的控制檯工程的一部分:


關於開源的RTP——jrtplib的使用
 
首先,我向我們應該先到下面的鏈接網站上下載jrtplib和jthread這兩個包
 
然後,我們要對這兩個包進行編譯,首先是編譯jthread這個包裏面的工程,編譯成功後(我編譯了,沒有問題),現在我們可以編譯jrtplib了。在我們編譯這個工程之前,我們要將先前編譯成功後的jthread後的得到的jthread.lib和jthread目錄../src下的.h文件加到jrtplib這個工程中再編譯,不然會出現找不到xxx.h的錯誤和非法的引用等的編譯或連接錯誤。
 
好了,當我們成功了以上的步驟後,就可以向配置directshow的baseclass那樣來配置我們的編譯器。
 
下面是vs 2005下一個簡單的控制檯工程的一部分:
關於開源的RTP——jrtplib的使用
 
首先,我向我們應該先到下面的鏈接網站上下載jrtplib和jthread這兩個包
 
然後,我們要對這兩個包進行編譯,首先是編譯jthread這個包裏面的工程,編譯成功後(我編譯了,沒有問題),現在我們可以編譯jrtplib了。在我們編譯這個工程之前,我們要將先前編譯成功後的jthread後的得到的jthread.lib和jthread目錄../src下的.h文件加到jrtplib這個工程中再編譯,不然會出現找不到xxx.h的錯誤和非法的引用等的編譯或連接錯誤。
 
好了,當我們成功了以上的步驟後,就可以向配置directshow的baseclass那樣來配置我們的編譯器。
 
下面是vs 2005下一個簡單的控制檯工程的一部分:

關於開源的RTP——jrtplib的使用
 
首先,我向我們應該先到下面的鏈接網站上下載jrtplib和jthread這兩個包
 
然後,我們要對這兩個包進行編譯,首先是編譯jthread這個包裏面的工程,編譯成功後(我編譯了,沒有問題),現在我們可以編譯jrtplib了。在我們編譯這個工程之前,我們要將先前編譯成功後的jthread後的得到的jthread.lib和jthread目錄../src下的.h文件加到jrtplib這個工程中再編譯,不然會出現找不到xxx.h的錯誤和非法的引用等的編譯或連接錯誤。
 
好了,當我們成功了以上的步驟後,就可以向配置directshow的baseclass那樣來配置我們的編譯器。
 
下面是vs 2005下一個簡單的控制檯工程的一部分:



關於開源的RTP——jrtplib的使用
 
首先,我向我們應該先到下面的鏈接網站上下載jrtplib和jthread這兩個包
 
然後,我們要對這兩個包進行編譯,首先是編譯jthread這個包裏面的工程,編譯成功後(我編譯了,沒有問題),現在我們可以編譯jrtplib了。在我們編譯這個工程之前,我們要將先前編譯成功後的jthread後的得到的jthread.lib和jthread目錄../src下的.h文件加到jrtplib這個工程中再編譯,不然會出現找不到xxx.h的錯誤和非法的引用等的編譯或連接錯誤。
 
好了,當我們成功了以上的步驟後,就可以向配置directshow的baseclass那樣來配置我們的編譯器。
 
下面是vs 2005下一個簡單的控制檯工程的一部分:
  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這兩個包
 
然後,我們要對這兩個包進行編譯,首先是編譯jthread這個包裏面的工程,編譯成功後(我編譯了,沒有問題),現在我們可以編譯jrtplib了。在我們編譯這個工程之前,我們要將先前編譯成功後的jthread後的得到的jthread.lib和jthread目錄../src下的.h文件加到jrtplib這個工程中再編譯,不然會出現找不到xxx.h的錯誤和非法的引用等的編譯或連接錯誤。
 
好了,當我們成功了以上的步驟後,就可以向配置directshow的baseclass那樣來配置我們的編譯器。
 
下面是vs 2005下一個簡單的控制檯工程的一部分:
關於開源的RTP——jrtplib的使用
 
首先,我向我們應該先到下面的鏈接網站上下載jrtplib和jthread這兩個包
 
然後,我們要對這兩個包進行編譯,首先是編譯jthread這個包裏面的工程,編譯成功後(我編譯了,沒有問題),現在我們可以編譯jrtplib了。在我們編譯這個工程之前,我們要將先前編譯成功後的jthread後的得到的jthread.lib和jthread目錄../src下的.h文件加到jrtplib這個工程中再編譯,不然會出現找不到xxx.h的錯誤和非法的引用等的編譯或連接錯誤。
 
好了,當我們成功了以上的步驟後,就可以向配置directshow的baseclass那樣來配置我們的編譯器。
 
下面是vs 2005下一個簡單的控制檯工程的一部分:



關於開源的RTP——jrtplib的使用
 
首先,我向我們應該先到下面的鏈接網站上下載jrtplib和jthread這兩個包
 
然後,我們要對這兩個包進行編譯,首先是編譯jthread這個包裏面的工程,編譯成功後(我編譯了,沒有問題),現在我們可以編譯jrtplib了。在我們編譯這個工程之前,我們要將先前編譯成功後的jthread後的得到的jthread.lib和jthread目錄../src下的.h文件加到jrtplib這個工程中再編譯,不然會出現找不到xxx.h的錯誤和非法的引用等的編譯或連接錯誤。
 
好了,當我們成功了以上的步驟後,就可以向配置directshow的baseclass那樣來配置我們的編譯器。
 
下面是vs 2005下一個簡單的控制檯工程的一部分:


關於開源的RTP——jrtplib的使用
 
首先,我向我們應該先到下面的鏈接網站上下載jrtplib和jthread這兩個包
 
然後,我們要對這兩個包進行編譯,首先是編譯jthread這個包裏面的工程,編譯成功後(我編譯了,沒有問題),現在我們可以編譯jrtplib了。在我們編譯這個工程之前,我們要將先前編譯成功後的jthread後的得到的jthread.lib和jthread目錄../src下的.h文件加到jrtplib這個工程中再編譯,不然會出現找不到xxx.h的錯誤和非法的引用等的編譯或連接錯誤。
 
好了,當我們成功了以上的步驟後,就可以向配置directshow的baseclass那樣來配置我們的編譯器。
 
下面是vs 2005下一個簡單的控制檯工程的一部分:
關於開源的RTP——jrtplib的使用
 
首先,我向我們應該先到下面的鏈接網站上下載jrtplib和jthread這兩個包
 
然後,我們要對這兩個包進行編譯,首先是編譯jthread這個包裏面的工程,編譯成功後(我編譯了,沒有問題),現在我們可以編譯jrtplib了。在我們編譯這個工程之前,我們要將先前編譯成功後的jthread後的得到的jthread.lib和jthread目錄../src下的.h文件加到jrtplib這個工程中再編譯,不然會出現找不到xxx.h的錯誤和非法的引用等的編譯或連接錯誤。
 
好了,當我們成功了以上的步驟後,就可以向配置directshow的baseclass那樣來配置我們的編譯器。
 
下面是vs 2005下一個簡單的控制檯工程的一部分:
關於開源的RTP——jrtplib的使用
 
首先,我向我們應該先到下面的鏈接網站上下載jrtplib和jthread這兩個包
 
然後,我們要對這兩個包進行編譯,首先是編譯jthread這個包裏面的工程,編譯成功後(我編譯了,沒有問題),現在我們可以編譯jrtplib了。在我們編譯這個工程之前,我們要將先前編譯成功後的jthread後的得到的jthread.lib和jthread目錄../src下的.h文件加到jrtplib這個工程中再編譯,不然會出現找不到xxx.h的錯誤和非法的引用等的編譯或連接錯誤。
 
好了,當我們成功了以上的步驟後,就可以向配置directshow的baseclass那樣來配置我們的編譯器。
 
下面是vs 2005下一個簡單的控制檯工程的一部分:
關於開源的RTP——jrtplib的使用
 
首先,我向我們應該先到下面的鏈接網站上下載jrtplib和jthread這兩個包
 
然後,我們要對這兩個包進行編譯,首先是編譯jthread這個包裏面的工程,編譯成功後(我編譯了,沒有問題),現在我們可以編譯jrtplib了。在我們編譯這個工程之前,我們要將先前編譯成功後的jthread後的得到的jthread.lib和jthread目錄../src下的.h文件加到jrtplib這個工程中再編譯,不然會出現找不到xxx.h的錯誤和非法的引用等的編譯或連接錯誤。
 
好了,當我們成功了以上的步驟後,就可以向配置directshow的baseclass那樣來配置我們的編譯器。
 
下面是vs 2005下一個簡單的控制檯工程的一部分:
  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這兩個包
 
然後,我們要對這兩個包進行編譯,首先是編譯jthread這個包裏面的工程,編譯成功後(我編譯了,沒有問題),現在我們可以編譯jrtplib了。在我們編譯這個工程之前,我們要將先前編譯成功後的jthread後的得到的jthread.lib和jthread目錄../src下的.h文件加到jrtplib這個工程中再編譯,不然會出現找不到xxx.h的錯誤和非法的引用等的編譯或連接錯誤。
 
好了,當我們成功了以上的步驟後,就可以向配置directshow的baseclass那樣來配置我們的編譯器。
 
下面是vs 2005下一個簡單的控制檯工程的一部分:
  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基本配置的差不多了,當然我們可能在用特定的函數是還需要一些特定的庫。
發佈了3 篇原創文章 · 獲贊 1 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章