У меня есть программа на C ++ Vulkan, для которой необходимо наличие нескольких библиотек во время выполнения.Кроме того, Vulkan имеет функцию «Уровни проверки», которая настроена с помощью файла конфигурации.
Во время выполнения моей программе необходимо знать, где находятся эти библиотеки и где находится этот файл конфигурации.Я предполагаю, что нет никакого способа сделать это программно, но если есть, дайте мне знать.Чтобы обойти это, я установил переменные среды, а именно LD_LIBRARY_PATH (чтобы он мог найти библиотеки) и VK_LAYER_PATH (чтобы он нашел файл конфигурации Vulkan's Validation Layer).
Это работает, но я хочу лучший способ сделать этопотому что это не позволяет мне просто дважды щелкнуть файл и запустить его.Сначала я должен установить env vars, что плохо при развертывании программы.
У меня вопрос: есть ли опция компилятора / компоновщика, чтобы сделать это?
Это обходной путь, который я использую в своем make-файле:
run:
LD_LIBRARY_PATH=./path/to/lib1/:./path/to/lib2 VK_LAYER_PATH=./path/to/vulkan/config ./program_name
Яиспользуя Linux, g ++ и make.