【发布时间】:2019-12-31 04:37:01
【问题描述】:
在执行预处理器指令#include <iostream> 时,发生的情况类似于将文本包含(如复制和粘贴)到main.cpp 中,您可以使用g++ main.cpp 进行编译。你不编译iostream.cpp。
但是用户定义的文件呢? #include "userfile.h" 应该在 main.cpp 中包含类似的文本。那么如果 main 包含所有必要的代码,为什么我必须编译这两个文件(g++ main.cpp userfile.cpp)?
【问题讨论】:
-
"所有必要的代码"——注意你
#includeuserfile.h,但是编译userfile.cpp。它们是不同的文件这一事实说明了为什么这种说法是不正确的。 -
@KenWayneVanderLinde 无论如何都不是 C 中带有 .h 的标准库头文件吗?
-
标准库实现代码是:完全在头文件中实现并在您包含它们时与您的用户代码一起编译,或者已经编译成只需要链接的目标文件。
-
是的,头文件以
.h结尾是正常的,但这不是重点。既然我现在有一点时间,我会写一个正确的答案。 -
现在我也很震惊,因为我误解了这个问题。希望我的回答更准确。
标签: c++ compilation g++