Basic ASIO setup producing error: Cannot open include file: 'iasiodrv.h'



I’m fairly new to JUCE, and I would like to create a project with ASIO capabilities. However, when I create a new project using the projucer, and try to build it in visual studio (2019), I immediately get an error:

Cannot open include file: 'iasiodrv.h'

Can anybody help me with this? Other projects I’ve created don’t have this issue, only when I try to include ASIO. Here is what I did:

  1. Open projucer > File > New Project… > GUI Application
  2. Change target platform from VS 2017 to VS 2019, click create…
  3. Go to modules > juce_audio_devices > JUCE_ASIO, and change it from “Default (Disabled)” to “Enabled”.
  4. Save and Open the project in visual studio 2019.
  5. Run. Get Error.




You need the ASIO SDK.

Check out juce_audio_devices.cpp around line 100; the comments there explain why you have to get the necessary header files from Steinberg.

I generally copy the header files from the ASIO SDK into my Visual Studio project folder and then add


to my header search paths in the Projucer.


1 Like


Thanks for that pointer, that’s really useful to know.

Can you be a little bit more specific about how I should copy the files into my VS project folder? I don’t have much experience using SDKs apart from JUCE, but they make it really easy. Should I copy the contents of the “common” folder (from the ASIO download) into my “Source” folder in VS, alongside “Main.cpp” etc? Or can I put them in a more contained folder somehow?




This is the mentioned comment in the code:

So IIUC in the windows exporter, add to Extra compiler flags: -IC:\\path\\ASIO\\common

haven’t tried that recently



Okay, so I managed to figure this issue out. Here’s what ended up working:

  1. With the project open in the projucer, go to Modules > juce_audio_devices, and set JUCE_ASIO to “Enabled”.
  2. Click the settings icon above the file explorer, and in “Header Search Paths”, add the path to the ASIO common folder from the ASIO SDK download - for me this is “C:\ASIOSDK2.3.2\common”

This should then work fine.