Thanks Jeff. However, the header file of those C routines are included in ffmpegmgr.h, which is in turn included by ffmpegmgr.cpp.
The "undefined reference " normally indicates that the functions's definitions are not found, and it takes place when doing the linker. The libraries, libavcodec, etc, have been specified from the g++ command line, and seems to work - only that I need to make the encapulated member function in ffmpegmgr.cpp inline to eliminate the linker error: inline void FFMpegMgr::new_video_stream(AVFormatContext *oc) { ... st = av_new_stream(oc, oc->nb_streams); ... } Also, the lib that I specified is *.a, will it be different if the lib is *.so ? Thanks, Hai On Mon, Jun 7, 2010 at 1:26 AM, Jeff Newmiller <jdnew...@dcn.davis.ca.us>wrote: > Seems more likely that you haven't included the declarations for the C > routines in your cpp file. Would need to see more context to diagnose. > > "Hai Yi" <yihai2...@gmail.com> wrote: > > >Hello all: > > > >I created a class FFMpegMgr and a method init(); inside init() I just put > >three ffmpeg api there: > >avcodec_register_all(); > >avdevice_register_all(); > > av_register_all(); > > > >The source file ffmpegmgr.cpp look like this: > > > > void FFMpegMgr::init() { > > avcodec_register_all(); > > avdevice_register_all(); > > av_register_all(); > > > >} > > > >Now I got a "undefined reference to avcodec_register_all" error. > > > >if I put that body in the class declaration or add a "inline" keyword, > that > >problem was gone and the compilation succeeded. > > > >question is, do those three functions, which are C functions defined in > >avcodec.h, have to be used only in the inline functions in C++? > > > >Sorry if it appear naive - I've been out of touch with C/C++ for a while. > > > >Thanks! > >Hai > >_______________________________________________ > >vox-tech mailing list > >vox-tech@lists.lugod.org > >http://lists.lugod.org/mailman/listinfo/vox-tech > > --------------------------------------------------------------------------- > Jeff Newmiller The ..... ..... Go Live... > DCN:<jdnew...@dcn.davis.ca.us> Basics: ##.#. ##.#. Live > Go... > Live: OO#.. Dead: OO#.. Playing > Research Engineer (Solar/Batteries O.O#. #.O#. with > /Software/Embedded Controllers) .OO#. .OO#. rocks...1k > --------------------------------------------------------------------------- > Sent from my phone. Please excuse my brevity. > _______________________________________________ > vox-tech mailing list > vox-tech@lists.lugod.org > http://lists.lugod.org/mailman/listinfo/vox-tech >
_______________________________________________ vox-tech mailing list vox-tech@lists.lugod.org http://lists.lugod.org/mailman/listinfo/vox-tech