No, because those constants were generated on the FPC or Lazarus developer's machine. I need runtime info, since as discussed earlier in the thread I've got binaries which behave differently on different target systems depending on precisely what version of the GTK libraries are installed.
Over the last few minutes I've managed to get functions from lazgtk3 but that's necessitated an extremely unpleasant source path like $(LazarusDir)/lcl;$(LazarusDir)/lcl/interfaces/$(LCLWidgetType)/gtk3bindings in the project options file.
Slightly later: I think I can usefully copy the declarations out of the LCL source tree and rely on the fact that the IDE's linkage of the required low-level libraries will set up paths etc. as required. Hence
var
{$ifdef LCLGTK2 }
ws_major_version: cuint; external gtklib name 'gtk_major_version';
ws_minor_version: cuint; external gtklib name 'gtk_minor_version';
ws_micro_version: cuint; external gtklib name 'gtk_micro_version';
{$endif LCLGTK2 }
{$ifdef LCLGTK3 }
ws_major_version: cuint;
ws_minor_version: cuint;
ws_micro_version: cuint;
function gtk_get_major_version: cuint; cdecl; external;
function gtk_get_micro_version: cuint; cdecl; external;
function gtk_get_minor_version: cuint; cdecl; external;
{$endif LCLGTK3 }
and so on.
MarkMLl