Webports、ffmpegを設定しました。私は現在のプロジェクトに次のMakefileを作成しました。しかし、私はffmpegライブラリのリンクにいくつかの問題を満たしています。PPAPIでのFFMPEGライブラリの使用:FFmpegでのNaclports
$ TOOLCHAIN=pnacl make
LINK pnacl/Release/client_unstripped.bc
pnacl/Release/src/client.o: error: undefined reference to 'av_register_all'
make: *** [pnacl/Release/client_unstripped.bc] Error 1
あなたは私がここで間違ってやっているものを私に伝えることができ、私のMakefileを以下に示します。
VALID_TOOLCHAINS:?= pnacl glibcを打ち鳴らす-newlibのは
NACL_SDK_ROOT = $(ABSPATH $を獲得します(CURDIR)/../ ..)
TARGET =クライアント
OTHERDIR = SRC
INC_DIR = INC
FFMPEG_INC_DIR = ../../toolchain/mac_pnacl/le32-nacl/usr/include
は= -I $(INC_DIR)-I $(FFMPEG_INC_DIR)
を含みは$(NACL_SDK_ROOT)を含む
CHROME_ARGS + = --allow-NaClのソケット-API = localhostを
LIBS = nacl_io ppapi_cpp PPAPI
を/tools/common.mkCFLAGS = -Wall -g -O2 $(INCLUDES) -L ../../ツールチェーン/ mac_pnacl/le32-のNaClの/ usr/libに-lavformat \ -lvpx -lvorbisenc -lvorbis -logg -ltheoraenc -ltheoradec -logg -lmp3lame -lm -pthread -lavcodec -lvpx -lvorbisenc -lvorbis -logg \ -ltheoraenc -ltheoradec -logg -lmp3lame -lm -pthread -lswresample -lm -lavutil -lm -lavdevice -lavfilter
ソース= (OTHERDIR)/rtsp_response.cc/ $(OTHERDIR)/rtsp.cc $(OTHERDIR)/ rtsp_common。$(OTHERDIR)/tcp_util.cc $(OTHERDIR)/tpool.cc $(OTHERDIR)/net.cc $ cc \ $(OTHERDIR)/rtsp_client.cc $(OTHERDIR)/udp_util.cc\ $(OTHERDIR)/client.cc
common.mkからマクロによって生成されたの#ビルドルール:
$(foreachののSRC、$(SOURCES)、$(エバール$($(CFLAGS)))、$(SRC)、 COMPILE_RULEを呼び出す)
#PNaClワークフローでは、ストライプ化されていないバイナリとファイナライズされた/ストリッピングされたバイナリの両方が使用されます。 #NaClでは、Release configs(デバッグではない)のストリップバイナリのみを生成します。 $(eval $( )LINK_RULE、$(TARGET)_unstripped、$(SOURCES)、$(TARGET)、$(TOOLCHAIN)、$ $ STRING_RULE、$(TARGET)、$(TARGET)_unstripped))else $(eval $( LINK_RULE、$(TARGET)、$(SOURCES )、$(LIBS)、$(DEPS)))endifの
$(のeval $(呼び出しNMF_RULEライブラリがされているか、$(TARGET)、))
そして、ここでの方法です、クラスのコンテキストで使用されます。
class VideoDecodePack {
public:
VideoDecodePack() {
av_register_all();
}
};
class ClientInstance : public pp::Instance {
public:
explicit ClientInstance(PP_Instance instance) : pp::Instance(instance){
cses = InitRtspClientSession();
_videoDecoder = new VideoDecodePack();
}
...