由于
'vulkan/vulkan.h' file not found
上出现不同的错误,我得到 vulkan_core.h
:使用 vk_video/vulkan_video_codec_h264std.h' file not found
头文件运行脚本后,vulkan.h
。问题是我已经手动检查了头文件是否存在并且没有拼写错误
我已经按照官方文档中的建议下载并设置了最新的 vulkan sdk,遵循我的系统(Fedora Linux)的每一步。将
source
中的 setup-env.sh
放入 .bashrc
中,检查所需的每个环境变量是否都有一个值(除了 VK_LAYER_PATH
,我读到它不需要)。并在终端上成功运行vkvia
,没有任何错误。
我通过运行包含
vulkan/vulkan.h
头文件的测试脚本来检查一切是否正常。但基本上,我得到一个错误:
'vk_video/vulkan_video_codec_h264std.h' file not found
vulkan-core.h
l-8374 (#include "vk_video/vulkan_video_codec_h264std.h"
)vulkan/vulkan.h
和 vk_video/vulkan_video_codec_h264std.h
都存在。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
好吧,因为看来我必须这样做,尽管我不知道如何在另一个系统上重现该错误,我什至不知道这是 vulkan 的错误还是我的错误,这里有一些您可能想知道的附加信息:
发生错误的最小脚本(任何带有vulkan头文件的脚本)
#include <vulkan/vulkan.h>
int main() {
return 0;
}
我因此收到的每条错误消息
fatal error: 'vulkan/vulkan.h' file not found
2 | #include <vulkan/vulkan.h>
| ^~~~~~~~~~~~~~~~~
1 error generated.
vulkan_core.h
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.
其他信息
$ 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
-Wall -Wextra -g3 -std=c++20
(也尝试过 gcc,相同的 c++ 版本,相同的错误)1.3.268.0
vulkaninfo
内容,请给我发电子邮件:[电子邮件受保护],我会将其给您,因为它太长,无法在帖子中容纳据我所见,您收到包含错误,这是因为编译器正在系统目录中查找包含文件和 lib 文件,因此只需将它们复制到 /usr/local/include 和 /usr/local/lib
如果将第三方库和代码放入/opt文件夹中会更好
sudo mkdir /opt/vulkan
sudo mv path/to/vulkansdk-linux-x86_64-1.3.268.0 /opt/vulkan
如果您正在努力处理环境变量,那么只需更改 .profile 并将此行添加到其末尾即可
source /opt/vulkan/../setup-env.sh
现在将它们复制到系统目录中,也可以在代码中使用它们
vulkan 头文件
sudo cp -r $VULKAN_SDK/include/vulkan/ /usr/local/include/
Vulkan 库
sudo cp -P $VULKAN_SDK/lib/libvulkan.so* /usr/local/lib/
Vulkan 层文件
sudo cp $VULKAN_SDK/lib/libVkLayer_*.so /usr/local/lib/
sudo mkdir -p /usr/local/share/vulkan/explicit_layer.d
sudo cp $VULKAN_SDK/etc/vulkan/explicit_layer.d/VkLayer_*.json /usr/local/share/vulkan/explicit_layer.d
最后让一切焕然一新
sudo ldconfig