使用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 ++之类的东西创建一个项目,它会自动将文件链接在一起,但我不想使用它。我也看过其他的链接和来源,但我找不到对自己有用的东西。
答案 0 :(得分:7)
尝试
g++ -Wall -O2 main.cpp a.cpp b.cpp
这将创建一个程序a.out
,它是可执行文件。 -Wall
标志只是告诉编译器发出更多警告,-O2
标志启用优化。最后三个参数是您的源文件。您需要以#include
的任何方式提供非g++
:d的所有源文件。
您可以使用选项-o (name)
指定可执行文件名称。