in reply to Re^7: Gtk3 Install Problems
in thread Gtk3 Install Problems

Where is the makefile you reference in "Then I ran the 'perl Makefile.PL', 'dmake' mantra." ?

The Makefile.PL ships with the G::O::I-0.020 source and is found in the top level directory.
Running 'perl Makefile.PL' will create a file named "Makefile" (in the same directory) for dmake to use.

Those "undefined" references that you get, are defined for me by C:/usr/local/lib/glib-2.0.lib.
However, my build is wanting to resolve things like "_g_free", whereas for you it's "g_free" (ie no leading underscore.)

What does perl -V:archname report for you ?
In order to use these Introspection binaries, it needs to match x86, not x64.
That is, it needs to be a 32-bit build of Strawberry Perl - which will work fine on your 64-bit Windows, btw. If you haven't already done so, you could always grab a 32-bit "portable" Stawberry Perl - then you can have both perls on the same machine without them interfering with each other.

I've also discovered that there's a bit more I need to do before I have a serviceable build of G::O::I. For the current state of play, see the bug report I opened.

GTk3 has been installed by many Windows users I'm sure

I don't think so. I certainly don't know of any.

Cheers,
Rob

Afterthought: If you run dmake in verbose mode (ie dmake -v) then you'll get to see precisely which library files are being linked in.

Replies are listed 'Best First'.
Re^9: Gtk3 Install Problems
by drdon (Novice) on Feb 28, 2014 at 18:11 UTC

    So new ground being broken here. It would be great to detail the install procedure for GTk3. I don't want to fight with the 64 bit install so I will download Strawberry 32 bit this weekend and start from the beginning. I'll mess with the 64 bit install at some later date. For now I just want to get started using Gtk3.

    Thanks

    Don

      so I will download Strawberry 32 bit this weekend and start from the beginning

      The G::O::I build should then work for you, using the binaries you already have.
      Just make sure you use those same binaries to build the Glib module (which is a pre-requisite for G::O::I). I was using a Glib module that had been built against different binaries - when I rebuilt Glib-1.301 against the same binaries most of my problems with G::O::I disappeared.

      The only problem I now have (afaik) is that the typelib files are not being found by default, and I have to use the search_path option (mentioned near the beginning of the G::O::I docs) in order that they are found.
      Of course, the test suites for both G::O::I and Gtk assume that the typelib files will be found ... and hence, the tests still fail for me.

      When I find out how to properly handle these typelib files, I expect both G::O::I and Gtk3 to build, test, and install just fine.

      BTW, when I build Glib-1.301, some of the tests fail. I just ignore those failures and install the module anyway.

      Cheers,
      Rob

      Update: Found it:
      set GI_TYPELIB_PATH=C:\usr\local\lib\girepository-1.0
      Dunno why they have to keep that such a closely guarded secret.
      Anyway, with that in place, G::O::I-0.020 builds, tests and installs fine.
      *I* still have some issues because I pretty much need to rebuild Cairo against the same binaries that I used for G::O::I .... for the same reason that I needed to re-build Glib.
      But you should be right.

        I'm still having trouble installing G::O::I-0.020 I get ffi errors as below.

        perl Makefile.PL Warning (mostly harmless): No library found for -Wl,--export-dynamic Trying to build test libraries... not OK Writing Makefile for Glib::Object::Introspection Writing MYMETA.yml and MYMETA.json dmake GObjectIntrospection.o:GObjectIntrospection.c:(.text+0x78f6): undefine +d reference to `ffi_type_pointer' GObjectIntrospection.o:GObjectIntrospection.c:(.text+0x7970): undefine +d reference to `ffi_type_pointer' GObjectIntrospection.o:GObjectIntrospection.c:(.text+0x79c0): undefine +d reference to `ffi_type_pointer' GObjectIntrospection.o:GObjectIntrospection.c:(.text+0x79f5): undefine +d reference to `ffi_prep_cif' GObjectIntrospection.o:GObjectIntrospection.c:(.text+0x7a23): undefine +d reference to `ffi_call' GObjectIntrospection.o:GObjectIntrospection.c:(.text+0x7fc2): undefine +d reference to `ffi_type_pointer' c:/strawberry/c/bin/../lib/gcc/i686-w64-mingw32/4.6.3/../../../../i686 +-w64-mingw32/bin/ld.exe: GObjectIntrospection.o: bad reloc address 0x5c in section `.rdata' c:/strawberry/c/bin/../lib/gcc/i686-w64-mingw32/4.6.3/../../../../i686 +-w64-mingw32/bin/ld.exe: final link failed: Invalid operation collect2: ld returned 1 exit status dmake: Error code 129, while making 'blib\arch\auto\Glib\Object\Intro +spection\Introspection.dll' Skip blib\arch/Glib\Object\Introspection/Install/Files.pm (unchanged) Skip blib\lib\Glib\Object/Introspection.pm (unchanged) [ CC GObjectIntrospection.c ] Running Mkbootstrap for Glib::Object::Introspection () C:\strawberry\perl\bin\perl.exe -MExtUtils::Command -e chmod -- 644 In +trospection.bs dlltool --def Introspection.def --output-exp dll.exp [ LD blib\arch\auto\Glib\Object\Introspection\Introspection.dll ]

        I must be missing an environment variable or something like that.

        Thanks,

        Don

Re^9: Gtk3 Install Problems
by drdon (Novice) on Mar 01, 2014 at 00:15 UTC

    perl -V:aarchname returns

    archname='MSWin322-x64-multi-thread';

    Don