Dll missing error when trying to open arv-camera-test-0.8

Hello,

I downloaded Aravis from the below link:
https://packages.msys2.org/package/mingw-w64-x86_64-aravis?repo=mingw64
and when trying to open arv-camera-test-0.8.exe or arv-fake-gv-camera-0.8.exe I get a dll missing error as you can see in the attached screenshots
after opening arv-camera-test-0.8
.

It seems like these 3 dlls are missing:

  • libglib-2.0-0.dll
  • libgobject-2.0-0.dll
  • libgio-2.0-0.dll

I am using Windows 10 64-bit.

Do you have any ideas about this behavior?

Thanks in advance.

Hi,

The installation of Aravis should have pulled the dependencies. What gives pacman -Qi mingw-w64-x86_64-aravis ?

I guess you should try to update your msys2 installation using pacman -Syu.

Emmanuel.

Thanks you for bringing this up, it is a packaging issue. I opened a pull-request which should fix that (it will take a few days/weeks before that lands). For now just installing mingw-w64-glib2 by hand should solve the issue. Please confirm that it worked. Cheers!

I closed the PR again; the packaging seems to be correct as mingw-w64-x86_64-gobject-introspection-runtime (a dependency of mingw-w64-x86_64-aravis) should pull in also mingw-w64-x86_64-glib2 which contains the three DLLs you mention. As workaround, (re)install mingw-w64-x86_64-glib2.

@romi just a quick ping if you managed to fix the issue…?

To get the simple (32-bit) programs from 0.8.21 running , this is the list of files I needed to find in the end:

libiconv-2.dll
libusb-1.0.dll
libpcre-1.dll
liblzma-5.dll
libffi-7.dll
libgio-2.0-0.dll
libgmodule-2.0-0.dll
libwinpthread-1.dll
libxml2-2.dll
libgcc_s_dw2-1.dll
libglib-2.0-0.dll
libaravis-0.8-0.dll
libintl-8.dll
zlib1.dll
libgobject-2.0-0.dll

Check out Dependency Walker which will let you show which DLLs link against which other DLLs. In any case, mingw packages should pull, directly or indirectly, all DLLs you need.

Sooner or later you will need to deploy, and then you want a minimal subset, which I listed above.

To create this set I used a similar tool like dependency walker. Note that DLLs might themselves have other DLLs as dependency too.

Understood. Check out this post on automating bundling DLLs recursively with cmake & cpack, I use that for production code. (Dependency Walker works recursively as well, BTW).

I use innosetup to deploy the generated application EXE and relevant DLLs as a bundle with Delphi or Lazarus applications.

Though usually that is only for the more formal deliveries, and updates are simply single EXEs.