Installing and Using Aravis in Windows

I am trying to get Aravis working in Windows, but so far I a have had no luck. Can anyone help with the following:

  1. Configuring Visual Studio to use Aravis. Specifically, on my property pages what should be included in the following sections:
  • Configuration Properties → C/C++ → General → Additional Include Directories

  • Configuration Properties → Linker → General → Additional Library Directories

  • Configuration Properties → Linker → Input → Additional Dependencies

  1. Perhaps the next issue will be resolved when the previous is resolved, but I am writing a test script to mimic the existing test “fake” just to show things are working. I include glib.h and arv.h with no errors, but there are undefined errors for several methods including arv_get_n_devices(). I found this method in arvsystem.h which is included in arv.h. There are 2 include errors in arv.h for arvfeatures.h and arvversions.h. I have searched for these files but can only find and located in aravis/src. What am I missing here?

  2. Finally I have a question regarding streaming USB3 cameras. I am trying to create a system where 2 USB3 cameras are utilized on a PC that will only have one USB3 chipset. Is it possible to stream the cameras simultaneously? If not, is it possible to quickly switch between cameras so I could stream the first for ~30sec then quickly switch to the other for ~30sec?

Any help would be appreciated.

These 2 files are built during Aravis compilation, and will be found in the header installation directory.

Yes, it will be possible to stream the 2 cameras simultaneously, as long as the data stream does not exceed the USB bus bandwidth.

But is is also possible to start/stop the video stream for each camera using arv_camera_start_acquisition() and arv_camera_stop_acquisition().


Thanks Emmanuel, this helped. I no longer have library include errors.
The only error remaining appears to be the definition of ARV_API.
Any place the code uses ARV_API, I get an error that says “explicit type is missing (‘int’ assumed)”.
I’m not sure what to do here. The project can see arvapi.h, and libaravis-0.8-0.dll is added as an additional dependency under Linker → Input

What is the content of arvapi.h ?

This one is also generated during compilation. ARV_API define depends on the platform and compiler.

Here is the contents of arvapi.h:
#ifndef ARV_API_H
#define ARV_API_H

#if !defined (ARV_H_INSIDE) && !defined (ARAVIS_COMPILATION)
#error “Only <arv.h> can be included directly.”

#define ARV_API extern attribute ((visibility (“default”)))


That is probably the issue. If you want to compile your project with msvc, ARV_API should be __declspec(dllexport) extern

I guess you have compiled aravis using gcc or clang, and try to use the project now using msvc. I don’t know much about the Windows platform, but I think that will not work.

Ok, I’m trying to compile Aravis with MSVC now. I see the file aravis-msvc.yml and it looks like there should be some script that works with this to generate the conanfile.txt. Am I missing something?