【发布时间】:2013-10-28 01:06:23
【问题描述】:
我有问题 我正在尝试使用 GNU g++ 一起编译多个文件
我们假设有五个文件:
main.cpp : the main function
a.h : the header file of class A
a.cpp : the definition of class A
b.h : the header file of class B
b.cpp : the definition of class B
在程序中,main.cpp 使用 A 类(因此包括 a.h),A 类使用 B类(因此包括b.h)。
所以我刚刚添加了#include "a.h"
我正在尝试使用它来编译它
g++ main.cpp -o main
但这不起作用。它给了我一个“未定义的引用”错误。 当我将所有类与头文件一起编译时,该程序为我提供了所需的输出
谁能告诉我哪里出错了
【问题讨论】:
-
甚至不要思考
#include-将一个 .cpp 文件放入另一个文件中。只是提前告诉你。如果您发现自己认为这是一个好主意,请再想一想。那么请看下面的答案。 -
没有理由只将一个类放在头文件中。头文件可以(并且通常应该)包含几个相关的声明(类、函数等)和内联函数定义。对于像你这样的小项目,只有一个头文件(你可以预编译)是有意义的。您可以拥有比
*.cpp文件更少的*.h文件。