[vox-tech] inline keyword solves "undefined reference" issue

Hai Yi yihai2004 at gmail.com
Tue Jun 8 12:00:34 PDT 2010


Thanks Brian: I didn't find any header file named ffmpeg.h from the package.

On Tue, Jun 8, 2010 at 2:40 PM, Hai Yi <yihai2004 at gmail.com> wrote:

> 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 <jdnewmil at 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" <yihai2004 at 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 at lists.lugod.org
>> >http://lists.lugod.org/mailman/listinfo/vox-tech
>>
>>
>> ---------------------------------------------------------------------------
>> Jeff Newmiller                        The     .....       .....  Go
>> Live...
>> DCN:<jdnewmil at 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 at lists.lugod.org
>> http://lists.lugod.org/mailman/listinfo/vox-tech
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.lugod.org/pipermail/vox-tech/attachments/20100608/5adfa641/attachment.htm 


More information about the vox-tech mailing list