Web lists-archives.com

Re: GTK+ mingw32 dynamic linking conflict (cairo/pangocairo)


I generated my own `.LIB' files using `gendef' and `dlltool' (e.g. https://github.com/Automattic/node-canvas/wiki/Installation---Windows-(with-MSYS2) ).

After disabling `/SAFESH' in the MSVC Linker options, I was able to build my project. However, no text is being rendered by Pango-Cairo API calls.

I am trying to build against the official GTK mingw32 release, as I have compatibility issues across machines/environments with DLLs built with the `gvsbuild' project.

I will see if I can get any useful debug information out of the offical GTK libs at runtime.

Has anyone built against the official GTK libs successfully with MSVC?

On 4 September 2017 at 17:54, Jeffrey Sheen <jeffrey.sheen00@xxxxxxxxxxxxxxxxxxxxx> wrote:
Dear list,

I am trying to use the MSYS2 distributed mingw32 GTK+ DLLs in a VS2013 project.

I have `cairo' and `pango_cairo' API calls in my code, requiring that the following import libraries are added to the VS project option, "Linker->Additional Dependencies":
  • libcairo.dll.a
  • libpangocairo-1.0.dll.a
After a successful build, I get an `Entry Point Not Found' error at run-time.

If `libcairo.dll.a' is above `libpangocairo-1.0.dll.a' in the `Additional Dependencies' list, then the error is:

"The procedure entry point pango_cairo_create_layout could not be located in the dynamic link library libcairo-2.dll"

If  `libpangocairo-1.0.dll.a' is above `libcairo.dll.a', then the error is:

"The procedure entry point cairo_create could not be located in the dynamic link library libpangocairo-1.0-0.dll"

I used the `nm' command to see where the above entry points exist, but they only exist in their expected libraries.

i.e. `pango_cairo_create_layout' is exported in `libpangocairo-1.0.dll.a', as expected, and vice versa for the cairo API call.

I do not know why these entry points are being sought in the incorrect DLLs.

Any ideas how to resolve this linker conflict? Has anyone used the official MSYS2 GTK+ distribution in a Visual Studio project before?


gtk-list mailing list