如何使用 g++ 包含预编译的 .h.gch 标头
Posted
技术标签:
【中文标题】如何使用 g++ 包含预编译的 .h.gch 标头【英文标题】:How to include precompiled .h.gch headers using g++ 【发布时间】: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 暂时无法帮助我。 (对不起,如果我的英语不好)
【参考方案1】:
您实际上只能拥有一个预编译头 myheader.h
并且通常该单个头包含其他头。请参阅this answer 了解更多信息。
您使用 g++ -c myheader.h
(和其他相关选项,特别是 -O
、-g
、-Wall
、-I
dirname ... 编译该 C++ 头文件;它们应该是与您的目标文件相同)。在实践中,您应该有一个Makefile
并使用make
(运行一次make -p
以了解内置规则)。 CXXFLAGS
应该用于目标文件和预编译头文件。
您不会更改任何#include
指令(但实际上您的所有*.cc
或*.cpp
文件都应该只有一个)。
另请阅读Precompiled headers 部分。
【讨论】:
感谢您的回答 :-)以上是关于如何使用 g++ 包含预编译的 .h.gch 标头的主要内容,如果未能解决你的问题,请参考以下文章