【发布时间】:2018-10-07 18:52:25
【问题描述】:
我有一个 C++ Vulkan 程序,它需要多个库才能在运行时可用。此外,Vulkan 有一个名为“验证层”的功能,它使用配置文件进行配置。
在运行时,我的程序需要知道这些库在哪里以及配置文件在哪里。我猜没有办法以编程方式进行,但如果有,请告诉我。为了解决这个问题,我设置了环境变量,即 LD_LIBRARY_PATH(用于查找库)和 VK_LAYER_PATH(用于查找 Vulkan 的验证层配置文件)。
这可行,但我想要一种更好的方法来执行此操作,因为这不允许我简单地双击文件并运行它。我必须首先设置环境变量,如果我正在部署程序,这很糟糕。
我的问题是:是否有编译器/链接器选项可以做到这一点?
这是我在 makefile 中使用的解决方法:
run:
LD_LIBRARY_PATH=./path/to/lib1/:./path/to/lib2 VK_LAYER_PATH=./path/to/vulkan/config ./program_name
我正在使用 Linux、g++ 和 make。
【问题讨论】:
-
我正在为 Linux 开发 Linux,至少目前是这样。很抱歉造成混乱。
-
@πάνταῥεῖ 谢谢。我略过了。
-
无需道歉。没有更仔细地阅读最后一句话是我自己的错。您应该检查 configure 和 autoconf。 (我知道的只是这些工具存在并且可能可以帮助您解决这个特定问题。)