Open ddevault opened 4 years ago
Strangely I can see those constants are defined in glib-2.0/glib/gkeyfile.h
. I have glib 2.56.4
.
However I cannot find any documentation for the constants. So I have blacklisted them from the generation. https://github.com/pekim/gobbi/commit/33e954cd8649653cccf0e96f231774bbac1354b0
Can you give branch 16-glib-constants
a try please?
This gets me a bit further:
# github.com/pekim/gobbi/lib/atk
/usr/bin/ld: $WORK/b036/_x005.o: undefined reference to symbol 'g_object_ref_sink'
/usr/bin/ld: /usr/lib//libgobject-2.0.so.0: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
# github.com/pekim/gobbi/lib/gio
lib/gio/v-.go:1194:44: undefined: Converter
lib/gio/v-.go:1199:43: undefined: Initable
lib/gio/v-.go:1263:66: undefined: Converter
lib/gio/v-.go:1282:58: undefined: PollableInputStream
lib/gio/v-.go:1346:68: undefined: Converter
lib/gio/v-.go:1365:60: undefined: PollableOutputStream
lib/gio/v-.go:1463:41: undefined: MenuModel
lib/gio/v-.go:4599:55: undefined: PollableInputStream
lib/gio/v-.go:4681:57: undefined: PollableOutputStream
lib/gio/v-.go:6447:51: undefined: ProxyResolver
lib/gio/v-.go:6447:51: too many errors
What go build/run command are you running when this happens?
Does the example in the readme work?
lib/gobject/package.go
contains
// #cgo pkg-config: gobject-2.0
import "C"
Which should result in use of pkg-config --libs gobject-2.0
by go build so that it includes the necessary linker flags for the library. So I'm not sure why the g_object_ref_sink
symbol is not found.
I'm quite puzzled by DSO missing from command line
.
I was trying gtk_application
, but the command you gave doesn't work either.
I've got a handle on this now.
A function (for example g_converter_output_stream_new
) has no version information in the gir file. However it has a parameter with a type (in this case GConverter
, introduced in gio 2.24) that does have version information.
I'm generating the function as though it's available in all versions of gio. But it's implicitly new in 2.24.
So unless you're targetting gio 2.24 or later (using a build tag of gio_2.24
or later) the build is going to fail.
I'll look in to fixing the generation code to take this in to account.
Thanks, let me know and I'll give it a shot when the time comes.