【问题标题】:How to include precompiled .h.gch headers using g++如何使用 g++ 包含预编译的 .h.gch 标头
【发布时间】:2016-12-08 20:22:09
【问题描述】:

假设我有A.h、A.cpp、B.h和B.h.gch(我从网上下载了B)

如何编译我的代码(并创建可执行文件)?

我做的时候出错了

g++ -c B.h.gch

【问题讨论】:

  • 你得到哪个错误?
  • g++: warning: B.h.gch: linker input file unused because linking not done 这是一个警告,但没有生成.o。
  • 那么你首先是如何编译的?
  • 我通常使用g++ -c sources.cpp,然后使用g++ -o executable sources.o,但我之前从未遇到过.h.gch,Google 暂时无法帮助我。 (对不起,如果我的英语不好)

标签: c++ c++11 compilation g++


【解决方案1】:

您实际上只能拥有一个预编译头 myheader.h 并且通常该单个头包含其他头。请参阅this answer 了解更多信息。

您使用 g++ -c myheader.h(和其他相关选项,特别是 -O-g-Wall-Idirname ... 编译该 C++ 头文件;它们应该是与您的目标文件相同)。在实践中,您应该有一个Makefile 并使用make(运行一次make -p 以了解内置规则)。 CXXFLAGS 应该用于目标文件和预编译头文件。

您不会更改任何#include 指令(但实际上您的所有*.cc*.cpp 文件都应该只有一个)。

另请阅读Precompiled headers 部分。

【讨论】:

  • 感谢您的回答 :-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-09
  • 1970-01-01
  • 1970-01-01
  • 2010-12-05
  • 1970-01-01
  • 2014-11-15
相关资源
最近更新 更多