Уменьшите время компиляции clang с предварительно скомпилированными заголовками

Я работаю над проектом базы данных, который компилирует запросы (выраженные на каком-то языке более высокого уровня) в код C++. Этот код компилируется и выполняется базой данных. Эта часть работает отлично.

Прямо сейчас я пытаюсь сократить время компиляции для кода запроса C++. Мне было интересно, могу ли я использовать предварительно скомпилированные заголовки, чтобы получить производительность здесь.

Запрос переводится в файл с именем Query.cpp, в который входит библиотека /src/Database.hpp. Файл Database.hpp содержит дополнительные файлы, такие как StandardTypes.hpp и так далее. Могу ли я предварительно скомпилировать все эти заголовочные файлы, чтобы ускорить компиляцию Query.cpp? Если да, как я могу это сделать? До сих пор я не смог найти хорошего примера для скомпилированных заголовков, только некоторые действительно простые вещи.

Я использую следующую команду для компиляции Query.cpp:

clang++ -fPIC -std=c++11 Query.cpp -I./library/src/ -shared -o libquery.so;

1 ответ

Чтобы создать скомпилированный заголовок, включите все заголовки, которые вы не изменили, в Query.h и используйте:

clang -cc1 Query.h -emit-pch -o Query.h.pch

использовать предварительно скомпилированный тип заголовка:

clang -cc1 -include-pch Query.h.pch Query.cpp -shared -o libquery.so;

Query.cpp должен включать Query.h

Другие вопросы по тегам