c++vulkanfile-not-found

compiler can't find vulkan's H264 codec header file


I get 'vulkan/vulkan.h' file not found due to a different error on vulkan_core.h: vk_video/vulkan_video_codec_h264std.h' file not found after running a script using vulkan.h header file. The thing is that I have manually checked that the header file exists and that there's no typo

I have downloaded and set up latest vulkan sdk as recommended in the official documentation, following every step for my system (Fedora Linux). placing source of setup-env.sh in .bashrc, checked that every environment variable needed had a value (except VK_LAYER_PATH which i read that its not needed). And runned vkvia on the terminal successfully without any errors.

I check that everything works fine by running a test script which includes vulkan/vulkan.h header file. But basically, I get an error: 'vk_video/vulkan_video_codec_h264std.h' file not found
on vulkan-core.h l-8374 (#include "vk_video/vulkan_video_codec_h264std.h")

As I previously said, I manually checked that both vulkan/vulkan.h and vk_video/vulkan_video_codec_h264std.h exists.

x86_64/include/vk_video directory:

vulkan/vulkansdk-linux-x86_64-1.3.268.0/1.3.268.0/x86_64/include/vk_video/
├── vulkan_video_codec_h264std_decode.h
├── vulkan_video_codec_h264std_encode.h
├── vulkan_video_codec_h264std.h
├── vulkan_video_codec_h265std_decode.h
├── vulkan_video_codec_h265std_encode.h
├── vulkan_video_codec_h265std.h
└── vulkan_video_codecs_common.h


Well, since it seems like I have to, and even though I dont know how you could reproduce the error on another system, I don't even know if it's vulkan's fault or mine, here's some additional info that you may want to know:
smallest script where the error happens (any with vulkan header file)

#include <vulkan/vulkan.h>

int main() {
    return 0;
}

every error message I've gotten because of this

fatal error: 'vulkan/vulkan.h' file not found
    2 | #include <vulkan/vulkan.h>
      |          ^~~~~~~~~~~~~~~~~
1 error generated.
clang++: warning: treating 'c-header' input as 'c++-header' when in C++ mode, this behavior is deprecated [-Wdeprecated]
/home/owos/vulkan/vulkansdk-linux-x86_64-1.3.268.0/1.3.268.0/x86_64/include/vulkan/vulkan_core.h:8374:10: fatal error: 'vk_video/vulkan_video_codec_h264std.h' file not found
 8374 | #include "vk_video/vulkan_video_codec_h264std.h"
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.

additional information

$ clang++ -v
clang version 17.0.4 (Fedora 17.0.4-1.fc39)
Target: x86_64-redhat-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-redhat-linux/13
Selected GCC installation: /usr/bin/../lib/gcc/x86_64-redhat-linux/13
Candidate multilib: .;@m64
Candidate multilib: 32;@m32
Selected multilib: .;@m64

Solution

  • I have met the same issue when compiling a project and solved it. Not sure whether we have the same cause of the problem, I will share my solution anyway:

    Hope it will help you and good luck with your program! (This is literally my first answer via this platform, please feel free to correct me if improperly behaved.)