Каков правильный способ использования библиотеки только для заголовков?

Я столкнулся с путаницей в том, как правильно использовать библиотеку только для заголовков. Поиск в Google не помог, так как я ничего не нашел об использовании библиотек только для заголовков.

Итак, мой вопрос: должен ли я просто скопировать файлы заголовков и вставить их в папку моего проекта и использовать их таким образом, или я должен связать их с проектом, используя C\C++ >> General >> Additional Include Directorys?


person user3071028    schedule 26.08.2015    source источник
comment
Просто включить заголовочный файл в исходный файл? Если вы правильно настроили пути поиска заголовочных файлов, нет необходимости копировать какой-либо файл.   -  person Some programmer dude    schedule 26.08.2015
comment
Если вы поместите заголовок, например /ThirdParty/SomeLibrary/, то в файлах, которым нужны эти заголовки, вы просто скажете #include "ThirdParty/SomeLibrary/SomeHeader.h"   -  person Cory Kramer    schedule 26.08.2015
comment
Делайте все возможное, чтобы через три года вы все еще могли проверить проект из системы управления исходным кодом и собрать его. Копирование файлов, как правило, упрощает эту задачу. Но не то, что вы бы сделали, скажем, с заголовками Boost.   -  person Hans Passant    schedule 26.08.2015
comment
Спасибо, парни! Я думаю, что в конечном итоге я скопирую заголовки в файл проекта, так как это проще и удобнее (на мой взгляд).   -  person user3071028    schedule 27.08.2015


Ответы (2)


Я бы сказал, что копирование файла в папку вашего проекта предпочтительнее. Таким образом, ваш проект является автономным. Затем вы могли бы передать его кому-то другому, и он смог бы построить его без необходимости изменять какую-либо конфигурацию.

Теперь, если вы используете boost, который также имеет библиотеки только для заголовков, это другая история. Boost легко получить, и зависимость вашего проекта от boost менее проблематична. В этом случае я бы добавил его в «Дополнительные включения».

person trenki    schedule 26.08.2015

Вы можете сделать и то, и другое, это действительно вопрос удобства. Традиционно вы включаете их в свой путь включения, но вы также можете поместить их в свой проект. Их включение в ваш проект делает его более автономным и защищает вас от критических изменений в библиотеке, но также означает, что вам придется устанавливать обновления, связанные с безопасностью библиотеки, например, для каждой копии проекта.

person Tom    schedule 26.08.2015