2011-05-08 2 views
0

다음 코드는 항상 동일한 오류를 던집니다. 우분투에서는 작동하지만, fedora/centos에서는 작동하지 않는 것 같습니다.오류 : 'PSTUNClient :: PSTUNClient'에 대한 호출과 일치하는 함수가 없습니다.

2945 void H323EndPoint::SetSTUNServer(const PString & server) 
2946 { 
2947 natMethods->RemoveMethod("STUN"); 
2948 delete stun; 
2949 
2950 if (server.IsEmpty()) 
2951  stun = NULL; 
2952 else { 
2953  stun = new PSTUNClient(server, 
2954       GetUDPPortBase(), GetUDPPortMax(), 
2955       GetRtpIpPortBase(), GetRtpIpPortMax()); 
2956 
2957  natMethods->AddMethod(stun); 
2958 
2959  PTRACE(2, "H323\tSTUN server \"" << server 
       << "\" replies " << stun->GetNatTypeName()); 
2960 
2961   STUNNatType((int)stun->GetNatType()); 
2962 } 
2963 } 
2964 
2965 #endif // P_STUN 

단계 시도 :

$ cd ~ 
$ cvs -d:pserver:[email protected]:/cvsroot/openh323gk login 
(just press enter when prompted for password) 
$ cvs -z3 -d:pserver:[email protected]ourceforge.net:/cvsroot/openh323gk co -P openh323gk 
$ cd openh323gk 
$ ./configure --enable-h46018 
$ make optnoshared 
make DEBUG= P_SHAREDLIB=0 default_target 
make[1]: Entering directory `/root/h323plus' 
make[1]: Leaving directory `/root/h323plus' 
make -C src optnoshared 
make[1]: Entering directory `/root/h323plus/src' 
make DEBUG= P_SHAREDLIB=0 default_target 
make[2]: Entering directory `/root/h323plus/src' 
[CC] h323ep.cxx 
h323ep.cxx: In member function ‘PBoolean H323EndPoint::StartListeners(const H323TransportAddressArray&)’: 
h323ep.cxx:1107:29: warning: ‘virtual PObject* PAbstractList::RemoveAt(PINDEX)’ is deprecated (declared at /root/ptlib/include/ptlib/lists.h:233) 
h323ep.cxx: In member function ‘PBoolean H323EndPoint::RemoveAliasName(const PString&)’: 
h323ep.cxx:2750:31: warning: ‘virtual PObject* PAbstractList::RemoveAt(PINDEX)’ is deprecated (declared at /root/ptlib/include/ptlib/lists.h:233) 
h323ep.cxx: In member function ‘void H323EndPoint::SetSTUNServer(const PString&)’: 
h323ep.cxx:2955:65: error: no matching function for call to ‘PSTUNClient::PSTUNClient(const PString&, WORD, WORD, WORD, WORD)’ 
/root/ptlib/include/ptclib/pstun.h:441:5: note: candidates are: PSTUNClient::PSTUNClient() 
/root/ptlib/include/ptclib/pstun.h:438:1: note:     PSTUNClient::PSTUNClient(const PSTUNClient&) 
/root/ptlib/include/ptlib/sound.h: At global scope: 
/root/ptlib/include/ptlib/sound.h:745:1: warning: ‘PPlugin_PSoundChannel_WAVFile_loader’ defined but not used 
/root/ptlib/include/ptlib/videoio.h:1165:1: warning: ‘PPlugin_PVideoInputDevice_FakeVideo_loader’ defined but not used 
/root/ptlib/include/ptlib/videoio.h:1172:1: warning: ‘PPlugin_PVideoInputDevice_FFMPEG_loader’ defined but not used 
/root/ptlib/include/ptlib/videoio.h:1176:1: warning: ‘PPlugin_PVideoInputDevice_YUVFile_loader’ defined but not used 
/root/h323plus/include/h460/h460_std18.h:119:1: warning: ‘PPlugin_H460_Feature_Std18_loader’ defined but not used 
/root/h323plus/include/h460/h460_std18.h:179:1: warning: ‘PPlugin_H460_Feature_Std19_loader’ defined but not used 
/root/h323plus/include/h460/h46018_h225.h:377:1: warning: ‘PPlugin_PNatMethod_H46019_loader’ defined but not used 
/root/h323plus/include/h460/h460_std23.h:194:1: warning: ‘PPlugin_H460_Feature_Std23_loader’ defined but not used 
/root/h323plus/include/h460/h460_std23.h:278:1: warning: ‘PPlugin_H460_Feature_Std24_loader’ defined but not used 
/root/h323plus/include/h460/h460_std9.h:113:1: warning: ‘PPlugin_H460_Feature_Std9_loader’ defined but not used 
/root/h323plus/include/h460/h460_oid3.h:181:1: warning: ‘PPlugin_H460_Feature_OID3_loader’ defined but not used 
/root/h323plus/include/gnugknat.h:304:1: warning: ‘PPlugin_PNatMethod_GnuGk_loader’ defined but not used 
/root/ptlib/include/ptlib/pluginmgr.h:167:1: warning: ‘PFactoryLoader::PluginLoaderStartup_loader’ defined but not used 
/root/ptlib/include/ptclib/url.h:479:1: warning: ‘PFactoryLoader::PURL_HttpLoader_loader’ defined but not used 
/root/ptlib/include/ptclib/url.h:482:1: warning: ‘PFactoryLoader::PURL_FtpLoader_loader’ defined but not used 
make[2]: *** [/root/h323plus/lib/obj_s/h323ep.o] Error 1 
make[2]: Leaving directory `/root/h323plus/src' 
make[1]: *** [optnoshared] Error 2 
make[1]: Leaving directory `/root/h323plus/src' 
make: *** [optnoshared] Error 2 

답변

3

컴파일러는 프로토 타입 PSTUNClient::PSTUNClient(const PString&, WORD, WORD, WORD, WORD)으로 PSTUNClient 클래스의 생성자를 찾을 수 있음을 말하고있다. 코드에서

h323ep.cxx:2955:65: error: no matching function for call to ‘PSTUNClient::PSTUNClient(const PString&, WORD, WORD, WORD, WORD)’ 
/root/ptlib/include/ptclib/pstun.h:441:5: note: candidates are: PSTUNClient::PSTUNClient() 
/root/ptlib/include/ptclib/pstun.h:438:1: note:     PSTUNClient::PSTUNClient(const PSTUNClient&) 

,이 라인 :

는 관련 오류 출력 라인입니다

stun = new PSTUNClient(server, 
         GetUDPPortBase(), GetUDPPortMax(), 
         GetRtpIpPortBase(), GetRtpIpPortMax()); 

... 오류를 일으키는 하나입니다.

아마도 존재하지 않는 생성자를 사용하려고합니다. 컴파일러는 PSTUNClient::PSTUNClient()을 대신 사용한다고 암시합니다.

stun = new PSTUNClient(); 

이 페도라를 여러분의 우분투 빌드에서 컴파일이 아닌 경우 모두 빌드에서 당신이 PSTUN 라이브러리의 동일한 버전을 사용하는 경우, 자신에게 물어.

+1

대부분 마지막 단락에 +1입니다. 그 대답의 나머지 부분은 적절한 리드 업 맥락을 제공합니다. –