Vulkan演示无法在Nvidia Jetson TX2上编译

时间:2017-04-30 12:30:49

标签: vulkan

我已经从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}}

这是驱动程序问题吗?或者我的编译器或包含文件设置错误了吗?

2 个答案:

答案 0 :(得分:1)

您没有使用-lvulkan进行编译,因此缺少列出的Vulkan命令的定义。这很简单。

在典型的Linux发行版中,您需要libvulkan1(包含libvulkan.so和frends)和libvulkan-dev包(包含vulkan.h)。对于开发,您需要其他内容,例如验证层和glslangValidator(不确定它们是否已打包)。这些软件包可能不存在,或者根据您的发行版过于陈旧。

另一个选择是LunarG SDK。它将所有东西放在一个地方并经常更新。但不会自动安装到系统位置/ PATH。此外,它仅提供(在撰写本文时)x86_64。

最后的选择是自己编译(就像你一样)。作为SDK,它不会自动安装到系统位置/ PATH。因此需要处理并确保您未在​​libvulkan1libvulkan-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