Я считаю, что понимаю основы, касающиеся предварительно скомпилированных заголовков, и я не могу придумать ни одной причины, по которой предварительно скомпилированный заголовок нельзя использовать внутри библиотеки of, но мне сказали, что это либо невозможно, либо не следует делать ( не помню какой).
У меня есть проект, в котором общая библиотека будет статически связана с несколькими другими, и я хотел бы использовать предварительно скомпилированные заголовки внутри общей библиотеки для моих внешних зависимостей STL/Boost, но я не уверен, что это возможно. Я ориентируюсь на системы OS X и Windows, и общий поиск деталей, похоже, больше указывает на решения Windows, включающие stdafx.h
, что заставляет меня полагать, что использование предварительно скомпилированных заголовков обычно является практикой Windows.
Мой вопрос заключается просто в следующем:
Могу ли я использовать предварительно скомпилированный заголовок внутри библиотеки, которую я буду статически связывать с другими проектами? Если нет, то стоит ли использовать удобный заголовок, скажем, для всех моих зависимостей STL/Boost? Я имею в виду что-то вроде этого:
// common.h
#pragma once
#include <boost/this>
#include <boost/that>
#include <string>
#include <vector>
#include <other_stl_header>
// Foo.h
#include "common.h"
class Foo { ... }
// Foo.cpp
#include "Foo.h"
...
РЕДАКТИРОВАТЬ: я должен указать, что я не ожидаю, что предварительно скомпилированный заголовок будет использоваться совместно с чем-либо, кроме библиотеки, которую я компилирую. Мой вопрос связан с тем, возможно ли создать предварительно скомпилированный заголовок, который используется для компиляции этой библиотеки.