我应该如何设置 Vulkan SDK 环境变量?

How should I set the Vulkan SDK environment variables?

Linux Getting Started Guide for the Vulkan SDK 给出了设置运行时环境以允许应用程序查看本地 Vulkan SDK 安装的说明:

Set up these variables in your environment after you have set your VULKAN_SDK variable:

$ export PATH=$PATH:$VULKAN_SDK/bin
$ export LD_LIBRARY_PATH=$VULKAN_SDK/lib
$ export VK_LAYER_PATH=$VULKAN_SDK/etc/explicit_layer.d

我应该用这些命令做什么?目前我只是把它们放在我的 ~/.bashrc 文件的末尾:

$ tail -4 ~/.bashrc
VULKAN_SDK=~/vulkan/VulkanSDK/1.0.13.0/x86_64
export PATH=$PATH:$VULKAN_SDK/bin
export LD_LIBRARY_PATH=$VULKAN_SDK/lib
export VK_LAYER_PATH=$VULKAN_SDK/etc/explicit_layer.d

到目前为止这似乎有效,但这不是只设置了 Bash 中的变量吗?如果我使用不同的 shell 或 IDE 怎么办?

我应该这样设置 Vulkan SDK 环境变量,还是有更好的方法?

在 IDE 中,将有一种方法可以为 运行 程序设置环境变量。这些设置通常与命令行参数设置一起找到。

在程序本身中,您可以在加载 vulkan 加载程序之前在 windows 中使用 setenv(3) in linux or _putenv_s

1.0.13.0 之前的 SDK 版本用于将定义层的 json 文件复制到 /etc/vulkan/explicit_layer.d。这使得设置 VK_LAYER_PATH.

的必要性降低

从1.0.13.0开始,SDK不再将文件放入系统目录。因此,与其使用 VK_LAYER_PATH 指向 $VULKAN_SDK/etc/explicit_layer.d 中的 json 文件,不如将 $VULKAN_SDK/etc/explicit_layer.d 的内容复制到 ~/.[=19= .d.

除了 /etc/vulkan/explicit_layer.d 和 /usr/share/vulkan/explicit_layer.d

之外,Vulkan 加载程序还在 ~/.local/share/vulkan/explicit_layer.d 中搜索层

设置环境变量的最佳位置在很大程度上取决于您的用例以及您使用的发行版。 但是,如果您从 Ubuntu 桌面 运行ning 一个 IDE,并且您希望这些变量在全球范围内可用,我建议将它们放在您的 ~/.profile 文件中,而不是~/.bashrc.

~/.bashrc 在您启动 bash 终端时获取,因此仅适用于来自终端的 运行 工具,但不适用于来自终端的工具从桌面启动器启动。

另一方面,

~/.profile 是在您登录时获取的,因此它的变量在终端和桌面上全局可用。 但是,对于 ~/.profile,您必须注销并重新登录才能使更改生效。

或者,正如棘轮狂人所说,大多数(但不是全部)IDE 提供了自己的环境变量设置工具。这适用于 Code::Blocks 和 Qt Creator,但不适用于 Android Studio。所以,就我个人而言,我还是更喜欢将它们放在 ~/.profile.