Sure? It doesn't complain at all when compiling and linking, only when 
installing app.o.
If I add: 

extern "C" int rtl_printf(const char * fmt, ...);

at the begining of matrix.cpp then its compilation says:

/usr/src/rtlinux-3.1/include/rtl_printf.h:4: previous declaration of `int 
rtl_printf (const char *,
...)' with C++ linkage
matrix.cpp:4: conflicts with new declaration with C linkage
make: *** [matrix.o] Error 1

So if rtl_printf is already declared with C++ linkage, why it can't find the 
C++ mangled name?. Why using extern "C"?.
Thank you,
Ivan Martinez

On Tuesday 23 October 2001 17:27, Erwin Rol wrote:
> rtl_printf__FPCce is a mangled C++ name for a function, you forgot
> extern "C" at some place.
>
> - Erwin
>
> Ivan Martinez wrote:
> >         Hello all,
> >         I'm writing a simple realtime module to learn how to compile and
> > use C++ code. I include the files that I'm using:
> >         - rtmatrix.h and rtmatrix.cpp will define the class that I want
> > to handle, at the moment they just define the A and C classes of the cpp
> > example. - rtmodule.cpp is a realtime module generated by the next
> > release of DSLib, v1.3. It's generated from an empty dynamic system so it
> > does nothing. - Makefile is a slight modification of cpp-example's
> > makefile, which compiles rtmodule.cpp instead of hello.cpp and includes
> > rtmatrix.o in linking. All this compiles fine, the problem is I get the
> > following error when installing app.o:
> >
> > Now start the real-time tasks  module
> > Type <return> to continue
> >
> > app.o: unresolved symbol rtl_printf__FPCce
> > make: *** [test] Error 1
> >
> >         rtmatrix.cpp includes rtl_printf.h and is compiled the same way
> > than rtmodule.cpp (which I can't understand as I said in my last
> > posting). Do you know what the problem is?.
> >         Regards,
> >         Ivan Martinez
> >
> >  
> > -------------------------------------------------------------------------
> >----- Name: rtmatrix.h
> >    rtmatrix.h    Type: C Header file
> > (application/x-unknown-content-type-hfile) Encoding: base64
> >
> >                    Name: rtmatrix.cpp
> >    rtmatrix.cpp    Type: C++ Source file
> > (application/x-unknown-content-type-cppfile) Encoding: base64
> >
> >                    Name: rtmodule.cpp
> >    rtmodule.cpp    Type: C++ Source file
> > (application/x-unknown-content-type-cppfile) Encoding: base64
> >
> >                Name: Makefile
> >    Makefile    Type: text/x-makefile
> >            Encoding: base64
>
> -- [rtl] ---
> To unsubscribe:
> echo "unsubscribe rtl" | mail [EMAIL PROTECTED] OR
> echo "unsubscribe rtl <Your_email>" | mail [EMAIL PROTECTED]
-- [rtl] ---
To unsubscribe:
echo "unsubscribe rtl" | mail [EMAIL PROTECTED] OR
echo "unsubscribe rtl <Your_email>" | mail [EMAIL PROTECTED]
--
For more information on Real-Time Linux see:
http://www.rtlinux.org/

Reply via email to