Your method entry table is creating an entry named "gSignalConnect". That's
the name you need to use on your method definition. Linking is done via the
table you define, not directly to symbol in the library.

Rick

On Sat, Oct 26, 2024 at 5:56 PM taf <t...@pgmguild.com> wrote:

> oorexx cannot find my external function, even tho' it seems to be in my
> .so:
>
> taf@taf-24:~/learning/oorexxGTK$ LD_LIBRARY_PATH=`pwd` ./example-0.rex
>      33 *-* ::method gSignalConnect   external "LIBRARY orxgtk_methods
> g_Signal_Connect_Object"
> Error 90 running /home/taf/learning/oorexxGTK/example-0.rex line 33:
> External name not found.
> Error 90.998:  Unable to find external method "g_Signal_Connect_Object".
> taf@taf-24:~/learning/oorexxGTK$ nm -D --defined-only liborxgtk_methods.so
> 00000000000040e0 D DemoExternalLibrary_package_entry
> 0000000000001130 T g_Signal_Connect_Object
> 00000000000010e0 T NoArgMethodReturn123
> 0000000000001090 T NoArgRoutineReturn123
> 0000000000004040 D orxgtk_funcs
> 0000000000004080 D orxgtk_meths
> 0000000000001207 T RexxGetPackage
> 000000000000111d T _Z25NoArgMethodReturn123_implP18RexxMethodContext_
> 00000000000010cd T _Z26NoArgRoutineReturn123_implP16RexxCallContext_
> 00000000000011b3 T
> _Z28g_Signal_Connect_Object_implP18RexxMethodContext_dddd
>
> built with this:
>
> // ----------------------------------------------------
> RexxMethod4(double,                   // return type (s/b gulong!)
>              g_Signal_Connect_Object,  // native method name
>              double,      arg1,        // detailed signal
>              double,      arg2,        // callback routine name
>              double,      arg3,        // GObject to pass as data, may
> be null
>              double,      arg4)        // GConnectFlags
>          {
>          fprintf(stdout,"from native code g_Signal_Connect_Object\n");
>          return 23.1;
>          }
> RexxMethodEntry orxgtk_meths[] = {
>      REXX_METHOD(gSignalConnect       , g_Signal_Connect_Object),
>      REXX_METHOD(NoArgMethodReturn123 , NoArgMethodReturn123 ),
>      REXX_LAST_METHOD()              // end marker
>    };
>
> invoked from line 33 like this:
>
> ::method gSignalConnect   external "LIBRARY orxgtk_methods
> g_Signal_Connect_Object"
>
> can anyone tell me what I'm doing wrong? Thanks in advance!
>
>
>
> --
> taf
>
>
>
> _______________________________________________
> Oorexx-devel mailing list
> Oorexx-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/oorexx-devel
>
_______________________________________________
Oorexx-devel mailing list
Oorexx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/oorexx-devel

Reply via email to