使用预编译头减少clang编译时间

Decrease clang compile time with precompiled headers

本文关键字:编译 clang 时间      更新时间:2023-10-16

我正在从事一个数据库项目,该项目将查询(用一些更高级的语言表示)编译成c++代码。此代码由数据库编译和执行。那部分做得很好。

现在,我正在努力减少C++查询代码的编译时间。我想知道是否可以使用预编译头来获得性能。

查询被翻译成一个名为query.cpp的文件,其中包括library/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;

创建预编译的头,包括所有未更改为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