Sounds like you forgot extern "C". The linker looks C++ version of
the symbol which has the parameter type info in the symbol name (the
__FUiPvi part) and the module only has the C version without the type
info.
Just put a extern "C" { } around your include files when including from
a C++ source file.
- Erwin
"Dirk Pohl [EIT]" wrote:
>
> My rtmodule consists of the following:
>
> One rtf_handler which listens on /dev/rtf1 for commands from Linux and
> creates objects depending on the command-number. The objects are then put
> in a global array.
> Another rtf_handler which listens on /dev/rtf2 for commands from Linux and
> sends these through /dev/rtf3 to the thread (like in the
> examples/frank-module to start it).
> Finally the thread which takes the objects from the global array and calls
> the member-functions.
> This seems to work.
> Until now, one memberfunction gives output via printk, but now I wanted
> to pipe the values back to Linux through /dev/rtf4.
> So I included <rtl_fifo.h> in the objects' cpp-file, replaced the printk
> with an rtf_put an created the fifo in my init_module. Compiling works,
> but when I insert the module, I get:
>
> rtmod.o: unresolved symbol rtf_put__FUiPvi
>
> If I instead put the rtf_put command in the thread_code (which is C), it
> works.
>
> Why can't I rtf_put from a memberfunction?
> I basically understand the unresolved symbol error message: For every
> function I use, there has to be a definition somewhere (like in rtl.o,
> rtl_fifo.o). I also know that I can view the symbols with ksyms -m (even
> if I don't know what I can do with that :-) )and then I see that rtl_fifo
> exports (I think thats how it is called) rtf_put. What does this __FUiPvi
> after rtf_put tell me? Did I get the basics right?
>
> Dirk Pohl
> University of Kaiserslautern
>
> -- [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/rtlinux/
-- [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/rtlinux/