0

次のコマンドを使用して、「pcp」というファイル共有の例をコンパイルしようとしています

 wolfgang@den-pc:~/tejesh/libjingle-0.6.14/programs$ g++ -g -Wall -DPOSIX
-DEXPAT_RELATIVE_PATH -DFEATURE_ENABLE_SSL -DHAVE_OPENSSL_SSL_H=1  -I ../ pcp_main.cc
 ../talk/build/dbg/lib/libxmpphelp.a ../talk/build/dbg/lib/libjingle.a ../talk/build
 /dbg/lib/libexpat.a ../talk/build/dbg/lib/libsrtp.a -lpthread -lssl

そして、次の「typeinfo」エラーが発生します...

 pcp_main.cc: In member function ‘virtual void
 CustomXmppPump::OnStateChange(buzz::XmppEngine::State)’:
 pcp_main.cc:348:12: warning: enumeration value ‘STATE_NONE’ not handled in switch  
 [-Wswitch]
 /tmp/ccVe8JUg.o:(.rodata._ZTI14CustomXmppPump[typeinfo for CustomXmppPump]+0x18): 
 undefined reference to `typeinfo for XmppPump'
 /tmp/ccVe8JUg.o:(.rodata._ZTIN7cricket18SessionManagerTaskE[typeinfo for  
 cricket::SessionManagerTask]+0x8): undefined reference to `typeinfo for buzz::XmppTask'
 /tmp/ccVe8JUg.o:(.rodata._ZTIN7cricket15SessionSendTaskE[typeinfo for  
 cricket::SessionSendTask]+0x8): undefined reference to `typeinfo for buzz::XmppTask'
 /tmp/ccVe8JUg.o:(.rodata._ZTI17AutoPortAllocator[typeinfo for AutoPortAllocator]+0x8): 
 undefined reference to `typeinfo for cricket::HttpPortAllocator'
 collect2: ld returned 1 exit status

誰でもこの問題について何か考えがありますか?

4

3 に答える 3

0

このエラーは、一部の仮想メソッドに定義がないことが原因である可能性があります。つまり、宣言はしていますが、その本体を定義していません。

おそらく、コンパイル/リンクにいくつかの .c/.cpp ファイルが含まれていませんか?

于 2012-08-09T11:58:53.123 に答える
0

scons を使用して pcp を正常にコンパイルできましたか? .... talk/ ディレクトリで、次の行を 'libjingle.scons' に追加します。

 talk.App(env, name = "pcp",
 posix_libs = [
   "crypto",
   "ssl",
 ],
 srcs = [
   "examples/pcp/pcp_main.cc",
 ],

libs = [「ジングル」、「expat」、「srtp」、「xmpphelp」、]、)

そして、libjingle の README の指示に従ってビルドします。pcp バイナリが /talk/build/dbg/staging/ ディレクトリにビルドされます。

于 2012-08-11T22:04:55.690 に答える