В настоящее время я пытаюсь настроить проект на C++, b который использует библиотеку luabind. К сожалению, в моем дистрибутиве, а именно в Arch, этой библиотеки нет в официальных репозиториях, а та, что в AUR, устарела и не компилируется.
Учитывая, что мне нужна библиотека только для этого проекта, я подумал, что могу создать изолированную среду, похожую на виртуальную среду Python, создав библиотеку, затем установив (скопировав) включаемые файлы и получившиеся двоичные файлы в 2 подкаталогах моего проекта с именами include
и lib
, соответственно которые я добавлю в компоновку и включу пути при сборке. Я понимаю, почему распространять библиотеки с вашим проектом плохо: например, безопасность и исправления ошибок. Однако распространение DLL почти повсеместно выполняется в Windows (что я мог бы сделать, если бы выполнял кросс-компиляцию), и многие проекты, такие как игры для Linux, имеют тенденцию упаковывать свои библиотеки, чтобы избежать несоответствий между дистрибутивами. Более того, если мне когда-нибудь понадобится исправленная или разветвленная версия библиотеки, я сомневаюсь, что когда-нибудь найду ее в каком-либо официальном репо.
Итак, мой вопрос:
- Является ли то, что я описал выше, обычной практикой? Должен ли я сделать это так?
- Если нет, то какое наиболее часто встречающееся решение этой проблемы?
ПРИМЕЧАНИЕ. Я использую Cmake для автоматизации сборки, если это имеет значение.
EDIT: Этот вопрос немного совпадает с моим.