1、如果h头文件中有实现代码,那么不需要进行gcc编译操作。
2、h头文件中有实现代码(A.h)时,include它的cpp(B.cpp)如果进行gcc -c 操作时,生成的o文件中会包含A.h中的实现代码。
3、如果A.h中有全局变量或函数,如果B.cpp 包含A.h ,同时C.cpp包含A.h。如果将B.cpp和C.cpp链接到一起,将会有符合多次定义错误。
原因是生成的B.o中有A.h的符号定义,C.o也有A.h的符号定义,这部分就是冲突。
1、如果h头文件中有实现代码,那么不需要进行gcc编译操作。
2、h头文件中有实现代码(A.h)时,include它的cpp(B.cpp)如果进行gcc -c 操作时,生成的o文件中会包含A.h中的实现代码。
3、如果A.h中有全局变量或函数,如果B.cpp 包含A.h ,同时C.cpp包含A.h。如果将B.cpp和C.cpp链接到一起,将会有符合多次定义错误。
原因是生成的B.o中有A.h的符号定义,C.o也有A.h的符号定义,这部分就是冲突。