StudioCherno / Walnut

Walnut is a simple application framework for Vulkan and Dear ImGui apps
MIT License
2.11k stars 391 forks source link

Cannot open include file: 'vulkan/vulkan.h': No such file or directory #38

Open KnutssonDevelopment opened 1 year ago

KnutssonDevelopment commented 1 year ago

When trying to compile. I am getting this error: Cannot open include file: 'vulkan/vulkan.h': No such file or directory

Is something missing, or is there some dependency I am missing?

greenkalx commented 1 year ago

You need the Vulkan SDK installed, as listed in Requirements on Walnut page.

Then add the path to the project properties in Visual Studio: project > properties > c/c++ > general > additional include directories for example, C:\VulkanSDK\1.1.130.0\Include

Roever1 commented 1 year ago

i have a similar issue while compiling OpenGothic, but i dont really understand your answer, some help maybe? O:)

greenkalx commented 1 year ago

Which part do you not understand? Where did you install the Vulkan SDK? Where did you provide the include path in Visual Studio? Is there an error when compiling?

Roever1 commented 1 year ago

my issue is solved, Vulkan was not properly installed. thanks anyway :)

Assault-OPS commented 1 year ago

Hey guys, I'm also facing the same issue. I have installed the Vulkan SDK dependency and added the path to the .h files to the Additional Include Directories in Project settings. But unfortunately it does not seem to work. Help would be appreciated, thanks.

BrenoBDias commented 1 year ago

Hey guys, I'm also facing the same issue. I have installed the Vulkan SDK dependency and added the path to the .h files to the Additional Include Directories in Project settings. But unfortunately it does not seem to work. Help would be appreciated, thanks.

Same issue here

flyingpie commented 1 year ago

@Assault-OPS @BrenoBDias You shouldn't manually add the path to the headers in project settings, those will get overridden by Premake, the originals are defined in the .lua files.

The installation of the Vulkan SDK should add a system-wide environment variable called "VULKAN_SDK", which is used by Premake for includes.

Windows tends to not properly resolve new environment variables, without a reboot, so try that after the Vulkan installation.

garrigueta commented 11 months ago

Hi, it worked for me adding, the "include" folder using the General section, and adding the lib path and a lib reference itself in the "linker" section. This tiny video helped me: Add External Include Folders and Libraries to C/C++ Projects using Visual Studio 2022 After setting all this I'm able to build and run the "WalnutApp", also, for me, the "setup.bat" script from the "scripts" folder worked like a charm.

I'm on Win 10 with VS 2022

learn-more commented 11 months ago

@Assault-OPS @BrenoBDias You shouldn't manually add the path to the headers in project settings, those will get overridden by Premake, the originals are defined in the .lua files.

The installation of the Vulkan SDK should add a system-wide environment variable called "VULKAN_SDK", which is used by Premake for includes.

Windows tends to not properly resolve new environment variables, without a reboot, so try that after the Vulkan installation.

It resolves it perfectly fine, but only from explorer. So any cmd.exe that you have open, you need to re-open from explorer (and not some custom launcher)

Daneaux commented 8 months ago

need to add %VULKAN_SDK%\Include to your additional directories path. Even if Vulkan is installed correctly, the project file won't fine the vulkan headers. I'm not sure how to add that to the project file/sln builder, otherwise I'd do a PR.

learn-more commented 8 months ago

need to add %VULKAN_SDK%\Include to your additional directories path. Even if Vulkan is installed correctly, the project file won't fine the vulkan headers. I'm not sure how to add that to the project file/sln builder, otherwise I'd do a PR.

No need to do a PR for something that is already present.

omarandlorraine commented 7 months ago

I had this same symptom and I'm writing to describe my solution.

I did all of these steps, before installing the Vulkan SDK, which is obviously not going to work:

  1. run Setup.bat
  2. open the solution in visual studio
  3. compile the application; obviously here is where I ran into the problem.

I installed Vulkan SDK and rebooted, and at this point, even adding the correct include directory in the Project settings did not let the compiler find vulkan/vulkan.h, which I don't understand!

So Walnut still wouldn't compile. I believe this is because vendor\bin\premake5.exe looks for Vulkan SDK and sets things up to match the installed location etc. etc. Who knows. But my theory is that if premake5 didn't find the Vulkan SDK, then the project never finds the Vulkan headers. So here are the steps I took to get going again.

  1. look in .gitignore you'll see what files to delete. This includes the .vcxproj file(s), WalnutApp.sln, bin and bin-int, and probably .vs.
  2. Rerun Setup.bat; this will regenerate the files you just deleted
  3. open the solution in Visual Studio
  4. build the application, this time successfully

Hopefully this information helps someone else out there