Я строю очень базовую библиотеку, и это первый проект, который я планирую выпустить для других, если захотят. Таким образом, я хотел бы знать, что такое «лучшие практики» в отношении организации. Единственное, что может быть уникальным о моем проекте является то, что для того, чтобы использовать его в проекте, пользователи должны будут распространяться определенные абстрактные классы, что приводит меня к моему первому вопросу:Организация библиотеки C++
- много из библиотек, которые я видел, состоит из файла .a и одного файла .h. Это лучшая практика? Не было бы лучше разоблачить все общедоступные файлы .h, чтобы пользователи могли выбирать, какие из них включать? Если это предпочтительный способ сделать что-то, как это делается? Что входит в этот файл .h?
Мой второй вопрос включает зависимости. Например, мой текущий проект основан на OpenGL, GLFW и GLEW. Должен ли я скомпоновать их каким-либо образом с моим проектом или просто поручить пользователю гарантировать, что они установлены?
Редактировать: Кто-то спросил о моей целевой ОС. Все мои зависимости - это кросс-платформа, поэтому я (возможно, наивно) надеялся сделать свою библиотеку и кросс-платформой.
Спасибо за любую помощь!
Прежде всего: какой тип лицензии имеет ваша библиотека? и что такое целевая ОС? – zaufi
Я не знаю никаких стандартных рекомендаций. Лично мне нравится иметь один заголовочный файл для каждого открытого класса, даже если он находится в библиотеке. Некоторые люди могут подумать, что пустая трата времени должна включать все эти отдельные файлы. –