jjzjj

c++ - 如果我在 GCC 中编译和链接不需要的库会怎样?

我想这个标题有点令人困惑,但我会尽力澄清我的意思。下面我附上了我的制作文件。正如您在第四行看到的,我正在选择我希望我的项目链接到的所有库。当项目编译时,我看到它正在创建的每个目标文件都与LIBRA行指定的所有库链接。并非我项目中的所有文件都需要所有这些库。每个.cpp文件中可能只有一两次使用。这是否会在编译过程中产生任何额外成本?这会创建更大的二进制文件吗?现代编译器是否足够好以至于这不是问题,还是我必须阅读更多关于编译器的文献?CC=g++CFLAGS=-c-Wall-std=c++11-gLDFLAGS+=-ldlLIBRA=-lboost_system-lboost_filesy

c++ - #在头文件或实现文件中导入

有些人有在头文件中添加头文件imports/includes的习惯。另一方面,在头文件中编写前向声明,并在实现文件中编写实际的#include或#import行。这有标准做法吗?哪个更好,为什么? 最佳答案 给定X.h和X.c,如果你#include从X.h到“X”的所有客户#include还将包括所有这些header,即使某些header可能只在X.c中需要。X.h应该只包含解析X.h所需的内容。它应该假定翻译单元不会包含其他header,以确保重新排序包含不会破坏客户端。X.c应包括实现所需的任何额外内容。这最大限度地减少了重新