我已经从LunarG下载了Vulkan SDK:
https://github.com/LunarG/VulkanTools/
我已经使用BUILDvt.md中的指令成功编译了它,并且有一个“vulkan”目录,其中包含vulkan.h和vulkan.hpp文件。我复制了整个vulkan目录tino / usr / local / include,以便gcc可以找到它。
然而,当我进入我的VulkanTools中的demos目录并输入gcc cube.h时,我得到了这个:
{{1}}
这是驱动程序问题吗?或者我的编译器或包含文件设置错误了吗?
答案 0 :(得分:1)
您没有使用-lvulkan
进行编译,因此缺少列出的Vulkan命令的定义。这很简单。
在典型的Linux发行版中,您需要libvulkan1
(包含libvulkan.so
和frends)和libvulkan-dev
包(包含vulkan.h
)。对于开发,您需要其他内容,例如验证层和glslangValidator
(不确定它们是否已打包)。这些软件包可能不存在,或者根据您的发行版过于陈旧。
另一个选择是LunarG SDK。它将所有东西放在一个地方并经常更新。但不会自动安装到系统位置/ PATH
。此外,它仅提供(在撰写本文时)x86_64。
最后的选择是自己编译(就像你一样)。作为SDK,它不会自动安装到系统位置/ PATH
。因此需要处理并确保您未在libvulkan1
和libvulkan-dev
中使用意外预装版本。
答案 1 :(得分:1)
在尝试为NVIDIA Jetson TX2编译https://github.com/SaschaWillems/Vulkan时遇到了类似的问题。
我能够通过创建从/ usr / lib / aarch64-linux-gnu /到项目libvulkan.so的符号链接来解决此问题
基本上:
$ cd <PATH_TO_LIBVULKAN_IN_PROJECT>
$ ln -s /usr/lib/aarch64-linux-gnu/libvulkan.so.1 libvulkan.so
如果您随后在目录中执行“ ls -lt”,则应看到类似以下内容的内容:
$ ls -lt
libvulkan.so -> /usr/lib/aarch64-linux-gnu/libvulkan.so.1