Web lists-archives.com

RE: Windows GTK+ 2.24.10: Cairo contexts not rendering to surface




Hi Jeff,

 

Don’t add anything to the additional dependencies for your static lib.  You only need them for your dll’s and exe’s.  This should avoid the warnings.

 

Hope this helps.

 

With blessings, and cheers!

Windows 10 手機傳送

 

寄件者: Jeffrey Sheen
傳送時間: 2017125 01:43
收件者: gtk-list@xxxxxxxxx
主旨: Windows GTK+ 2.24.10: Cairo contexts not rendering to surface

 

Dear list,

 

I have raised an issue on the Cairo mailing list, who have referred me here. Your advice would be greatly appreciated.

I'm trying to incorporate Pango-Cairo rendering into a cross-platform project. Windows XP is a target platform for the project, so I am building against the GTK+ 2.24.10 Bundle (20120208). N.B. This is a C/C++ implementation.

 

The problem I'm having is that no Cairo backend contexts are rendering pixels to their surfaces in my main project's EXE, but are working as expected in a small demo project's EXE.

 

I followed this guide to setting up my VS 2015 projects: http://stackoverflow.com/questions/15906580/how-to-configure-gtk-on-visual-studio-2010

The significant difference between the structure of the functioning demo project and the main project is that the main project's EXE does not call the GTK+ API directly, but is dependent on a custom static library that is built against the GTK+ libs/dlls.

 

i.e. GTK+ 2 API calls are made in the functions of the custom static library, whose functions are called in-turn by the main project's EXE.

 

When building the static library, I receive the following linker warnings that do not appear when building the demo EXE:

 

1>gdk-win32-2.0.lib(libgdk-win32-2.0-0.dll) : warning LNK4006: __NULL_IMPORT_DESCRIPTOR already defined in gtk-win32-2.0.lib(libgtk-win32-2.0-0.dll); second definition ignored

1>gdk-win32-2.0.lib(libgdk-win32-2.0-0.dll) : warning LNK4221: This object file does not define any previously undefined public symbols, so it will not be used by any link operation that consumes this library

1>atk-1.0.lib(libatk-1.0-0.dll) : warning LNK4006: __NULL_IMPORT_DESCRIPTOR already defined in gtk-win32-2.0.lib(libgtk-win32-2.0-0.dll); second definition ignored

1>atk-1.0.lib(libatk-1.0-0.dll) : warning LNK4221: This object file does not define any previously undefined public symbols, so it will not be used by any link operation that consumes this library

1>gio-2.0.lib(libgio-2.0-0.dll) : warning LNK4006: __NULL_IMPORT_DESCRIPTOR already defined in gtk-win32-2.0.lib(libgtk-win32-2.0-0.dll); second definition ignored

1>gio-2.0.lib(libgio-2.0-0.dll) : warning LNK4221: This object file does not define any previously undefined public symbols, so it will not be used by any link operation that consumes this library

1>pangowin32-1.0.lib(libpangowin32-1.0-0.dll) : warning LNK4006: __NULL_IMPORT_DESCRIPTOR already defined in gtk-win32-2.0.lib(libgtk-win32-2.0-0.dll); second definition ignored

1>pangowin32-1.0.lib(libpangowin32-1.0-0.dll) : warning LNK4221: This object file does not define any previously undefined public symbols, so it will not be used by any link operation that consumes this library

1>gdi32.lib(GDI32.dll) : warning LNK4006: __NULL_IMPORT_DESCRIPTOR already defined in gtk-win32-2.0.lib(libgtk-win32-2.0-0.dll); second definition ignored

1>gdi32.lib(GDI32.dll) : warning LNK4221: This object file does not define any previously undefined public symbols, so it will not be used by any link operation that consumes this library

1>pangocairo-1.0.lib(libpangocairo-1.0-0.dll) : warning LNK4006: __NULL_IMPORT_DESCRIPTOR already defined in gtk-win32-2.0.lib(libgtk-win32-2.0-0.dll); second definition ignored

1>pangocairo-1.0.lib(libpangocairo-1.0-0.dll) : warning LNK4221: This object file does not define any previously undefined public symbols, so it will not be used by any link operation that consumes this library

1>gdk_pixbuf-2.0.lib(libgdk_pixbuf-2.0-0.dll) : warning LNK4006: __NULL_IMPORT_DESCRIPTOR already defined in gtk-win32-2.0.lib(libgtk-win32-2.0-0.dll); second definition ignored

1>gdk_pixbuf-2.0.lib(libgdk_pixbuf-2.0-0.dll) : warning LNK4221: This object file does not define any previously undefined public symbols, so it will not be used by any link operation that consumes this library

1>pango-1.0.lib(libpango-1.0-0.dll) : warning LNK4006: __NULL_IMPORT_DESCRIPTOR already defined in gtk-win32-2.0.lib(libgtk-win32-2.0-0.dll); second definition ignored

1>pango-1.0.lib(libpango-1.0-0.dll) : warning LNK4221: This object file does not define any previously undefined public symbols, so it will not be used by any link operation that consumes this library

1>cairo.lib(libcairo-2.dll) : warning LNK4006: __NULL_IMPORT_DESCRIPTOR already defined in gtk-win32-2.0.lib(libgtk-win32-2.0-0.dll); second definition ignored

1>cairo.lib(libcairo-2.dll) : warning LNK4221: This object file does not define any previously undefined public symbols, so it will not be used by any link operation that consumes this library

1>gobject-2.0.lib(libgobject-2.0-0.dll) : warning LNK4006: __NULL_IMPORT_DESCRIPTOR already defined in gtk-win32-2.0.lib(libgtk-win32-2.0-0.dll); second definition ignored

1>gobject-2.0.lib(libgobject-2.0-0.dll) : warning LNK4221: This object file does not define any previously undefined public symbols, so it will not be used by any link operation that consumes this library

1>gmodule-2.0.lib(libgmodule-2.0-0.dll) : warning LNK4006: __NULL_IMPORT_DESCRIPTOR already defined in gtk-win32-2.0.lib(libgtk-win32-2.0-0.dll); second definition ignored

1>gmodule-2.0.lib(libgmodule-2.0-0.dll) : warning LNK4221: This object file does not define any previously undefined public symbols, so it will not be used by any link operation that consumes this library

1>gthread-2.0.lib(libgthread-2.0-0.dll) : warning LNK4006: __NULL_IMPORT_DESCRIPTOR already defined in gtk-win32-2.0.lib(libgtk-win32-2.0-0.dll); second definition ignored

1>gthread-2.0.lib(libgthread-2.0-0.dll) : warning LNK4221: This object file does not define any previously undefined public symbols, so it will not be used by any link operation that consumes this library

1>glib-2.0.lib(libglib-2.0-0.dll) : warning LNK4006: __NULL_IMPORT_DESCRIPTOR already defined in gtk-win32-2.0.lib(libgtk-win32-2.0-0.dll); second definition ignored

1>glib-2.0.lib(libglib-2.0-0.dll) : warning LNK4221: This object file does not define any previously undefined public symbols, so it will not be used by any link operation that consumes this library

1>intl.lib(intl.dll) : warning LNK4006: __NULL_IMPORT_DESCRIPTOR already defined in gtk-win32-2.0.lib(libgtk-win32-2.0-0.dll); second definition ignored

1>intl.lib(intl.dll) : warning LNK4221: This object file does not define any previously undefined public symbols, so it will not be used by any link operation that consumes this library

 

I know that the GTK+ bundle I have is functional, due to the success of the demo project, but would appreciate help configuring my main project.

 

_______________________________________________
gtk-list mailing list
gtk-list@xxxxxxxxx
https://mail.gnome.org/mailman/listinfo/gtk-list