用g ++编译头文件和cpp文件

时间:2014-03-10 18:55:49

标签: c++ header compiler-errors g++ header-files

使用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)。

那么,如何编译该程序以生成执行文件?

我尝试使用以下命令,但它反馈了错误:

undefined reference to ~(objects in class A and B)". 
command: g++ -Wall -O2 -s main.cpp

我的操作系统是ubuntu 12.04。我知道如果我用dev c ++之类的东西创建一个项目,它会自动将文件链接在一起,但我不想使用它。我也看过其他的链接和来源,但我找不到对自己有用的东西。

1 个答案:

答案 0 :(得分:7)

尝试

g++ -Wall -O2 main.cpp a.cpp b.cpp

这将创建一个程序a.out,它是可执行文件。 -Wall标志只是告诉编译器发出更多警告,-O2标志启用优化。最后三个参数是您的源文件。您需要以#include的任何方式提供非g++:d的所有源文件。

您可以使用选项-o (name)指定可执行文件名称。