Общие библиотеки в контексте, обсуждаемом в указанной вами ссылке, - это файлы .so (общие объекты) (.dll, библиотека динамических ссылок в Windows) или статические (.lib) библиотеки. Qt предоставляет такую библиотеку; как и многие другие поставщики / проекты. Чтобы использовать их в другом приложении (например, в вашем), вы включаете заголовки и ссылку против библиотеки.
То, о чем статья предупреждает, - это #include
заголовочные файлы, которые могут отсутствовать у пользователя, то есть те, которые не являются частью вашего проекта. Помните, что для того, чтобы кто-то другой использовал вашу новую «разделяемую библиотеку», он должен включить предоставленные вами файлы заголовков. Если этот файл содержит другие заголовки, которых у них нет, они получат ошибки.
Чтобы избежать этой проблемы, сделайте ваши #include
s в ваших файлах реализации (.cpp); таким образом, они скрыты от будущих пользователей. Qt рекомендует идиому «указатель на реализацию» (pimpl) - все детали реализации скрыты от пользователей класса, включая любые и все заголовочные файлы, от которых зависит реализация.
Вы можете легко сделать то же самое, даже если вы не изо всех сил с pimpl. Цель состоит в том, чтобы #include
содержать в заголовке только абсолютно необходимые файлы, надеюсь, все, что вы предоставили своей библиотекой.