用GCC预编译STL

Precompiled STL with GCC

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

有一段代码包含了很多标准库头文件。代码位于一个文件中,我不能在该项目中创建任何其他c++源文件(原文如此)。我想使用预编译的头文件来提高构建过程的性能。有两个问题

  1. 试图在vector上使用此指南,我有file format not recognized错误。我应该设置哪些标志来显示gcc,这是一个头文件?
  2. 官方指南中有一句话说"在特定的编译中只能使用一个预编译的头文件"。我如何一次预编译几个头呢?

(任何批处理/shell脚本也赞赏)

您是否忘记使用-x选项来编译文档中所述的预编译头文件?接下来,如果您想要预编译标准库的模板——这是不可能的。使用c++ 11,您可以显式地在特定的翻译单元中为某些类型参数实例化一些模板。在预编译头文件中,你可以指定

extern template void foo<char>(...)

如果你试图对模板使用预编译的头文件,那么它们的用途是什么?你的预编译头必须是一组其他包括/宏定义/内联函数和其他所有可以安全地包含在多个翻译单元中的内容。然而,每个库/二进制文件只有一个预编译头文件