C++ C++;Linux上具有多个*.cpp文件的makefile

C++ C++;Linux上具有多个*.cpp文件的makefile,c++,linux,file,makefile,C++,Linux,File,Makefile,我正在尝试创建一个包含多个文件的makefile。有人能帮我吗? 我拥有的文件是file1.cpp、file2.h和main.cpp file1.cpp包含我的函数。 h包含my函数的声明 main.cpp[在代码中包括file2.h] file1.cpp[在代码中包括file2.h] 是的 all: main gcc -g -Wall -o main main.cpp 但当我试图编译时,它给了我大量的bug。我的代码在eclipse上运行得非常好 但当我试图编译时,它给了我大量的bug。我的

我正在尝试创建一个包含多个文件的makefile。有人能帮我吗? 我拥有的文件是file1.cpp、file2.h和main.cpp

file1.cpp包含我的函数。 h包含my函数的声明

main.cpp[在代码中包括file2.h] file1.cpp[在代码中包括file2.h]

是的

all: main
gcc -g -Wall -o main main.cpp
但当我试图编译时,它给了我大量的bug。我的代码在eclipse上运行得非常好

但当我试图编译时,它给了我大量的bug。我的代码在eclipse上运行得非常好

<代码> GCC 不是C++编译器。改用

g++

您的
Makefile
应该是这样的,它可以利用:


您需要编译您使用的所有.cpp文件(我假设它们没有包含在任何地方)。 这样,编译器将知道file1.cpp和main.cpp一起使用。 我也建议使用G++来代替GCC,因为G++是特定的C++编译器,而GCC支持C和C++。 尝试使用:

g++ -g -Wall -o main main.cpp file1.cpp
我还建议使用如下Makefile变量:

SOURCES = main.cpp file1.cpp
g++ -g -Wall -o main $(SOURCES)

希望这有帮助:

GCC是一个C++编译器。G++使用GCC,但只是以一种方式将所有文件视为C++文件(包括*.c文件),谢谢它有很大帮助。事实证明,我可以拖动我的eclipse改造文件,最好的答案就在这里。
SOURCES = main.cpp file1.cpp
g++ -g -Wall -o main $(SOURCES)