1

live555 メディア サーバー ソースの testProgs ディレクトリにある testOnDemandRTSPServer.cppコンパイルする方法を見つけようとしています。Ubuntu 11.04 を使用しており、liblivemedia-devライブラリをインストールしました。

ヘッダー インクルード ( testOnDemandRTSPServer.cpp内) を次のように変更しました。

#include <liveMedia/liveMedia.hh>
#include <BasicUsageEnvironment/BasicUsageEnvironment.hh>

そして、このコマンドを使用してコンパイルしました:

g++ -lliveMedia -lgroupsock -lBasicUsageEnvironment -lUsageEnvironment testOnDemandRTSPServer.cpp -o RTSPServer

エラーが発生します。

In file included from /usr/include/liveMedia/MediaSink.hh:25:0,
             from /usr/include/liveMedia/RTPSink.hh:25,
             from /usr/include/liveMedia/MultiFramedRTPSink.hh:26,
             from /usr/include/liveMedia/AudioRTPSink.hh:25,
             from /usr/include/liveMedia/MPEG1or2AudioRTPSink.hh:25,
             from /usr/include/liveMedia/liveMedia.hh:27,
             from testOnDemandRTSPServer.cpp:21:
/usr/include/liveMedia/FramedSource.hh:25:23: fatal error: NetCommon.h: No such file or directory
compilation terminated.

この時点で、私は甘い取引を考え出しました。これは、ヘッダー ファイル間のリダイレクトの問題にすぎません。次に、/usr/ include#include <groupsock/NetCommon.h> /liveMedia/FramedSource.hhを代わりに使用するように変更しました#include "NetCommon.h"- NetCommon.h は /usr/include/groupsock/ にあるため

これはうまくいきましたが、次のようなリダイレクトの問題が何百万も見つかりました。

  • /usr/include/liveMedia/Media.hh:29:22: fatal error: Boolean.hh: No such file or directory
  • /usr/include/liveMedia/Media.hh:33:31: fatal error: UsageEnvironment.hh: No such file or directory
  • 等...

では、そもそも live555 ライブラリに正しくリンクしていますか、それとも必要に応じてヘッダーの場所を常に変更する必要がありますか?

アップデート

そのため、前述の方法を使用してヘッダーの場所を変更し続けましたが、ここに示すように、未定義の参照エラーが100万件発生します(申し訳ありませんが、ここに投稿するには多すぎます)

元の testOnDemandRTSPServer.cpp が問題なくコンパイルされるため (configure/make メソッドを使用)、今は頭を悩ませています。唯一変更したのは、ヘッダー ファイルを探す場所です。

4

1 に答える 1

1

答え

Ubuntu パッケージ ライブラリをまったく使用せずに...ただし、Live555 Web サイトからソース コードをコンパイルするだけです。
カスタム Makefile では、これは私が独自のプログラムと testOnDemandRTSPServer をコンパイルするために使用した構造です。

LIVE_INCLUDES=-I../UsageEnvironment/include -I../groupsock/include -I../liveMedia/include -I../BasicUsageEnvironment/include
LIVE_LIBS=../liveMedia/libliveMedia.a ../groupsock/libgroupsock.a ../BasicUsageEnvironment/libBasicUsageEnvironment.a ../UsageEnvironment/libUsageEnvironment.a

g++ $(LIVE_INCLUDES) testOnDemandRTSPServer.c -c
g++ -o testOnDemandRTSPServer -L. testOnDemandRTSPServer.o $(LIVE_LIBS)

未定義の参照エラーも解決します:P

于 2011-08-29T07:13:23.813 に答える