Вот
подводные.
Если коротко, то вам надо:
- решить, как доставлять пользователю ВАШИ зависимости (в целом варианта три: на уровне исходного кода, на уровне инструкции для пользователя, или использовать пакетный менеджер);
- решить, как пользователь будет собирать библиотеку и получать себе необходимые настройки сборки (например, многие проекты, которые сами используют CMake, автоматически генерят так называемые CMake-конфиги, чтобы потом библиотеку можно было легко подключить с помощью find_package);
- настроить правильный API для своей библиотеки, в частности аккуратно выставить публичные хедеры, чтобы был свой так называемый "header namespace" и прочие штуки;
Т.к. я кинул вам уже целых две книги (неплохие, хорошо пригождаются в работе), то вы понимаете, что в C++ с этим немного геморройно, в частности из-за адского зоопарка сборочных систем и целевых платформ.
С другой стороны, наиболее популярны сейчас CMake и Meson (симейк считай билд-система по-умолчанию для C++), а также появились ультимативные решения задачи упаковки, такие как
Conan (который унифицирует различную сборочную информацию и пропускает её через себя, чтобы можно было использовать в разных пакетах разные сборочные системы). Но всё-таки разобраться придётся, чудо в такой разнородной экосистеме сотворить сложно. Кстати, именно по этой причине многие плюют на грамотную упаковку, и предлагают подключать библиотеку путём импорта в проект исходников (например, через git-сабмодули).
Вы можете задавать более конкретные вопросы, постараюсь помочь.