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

我正在尝试使用多个文件makefile。 有人能帮我吗? 我有的文件是file1.cpp,file2.h和main.cpp

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

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

我做了

all: main gcc -g -Wall -o main main.cpp 

但是当我尝试编译时,却给了我大量的错误。 我的代码在日食上工作得很好。

Solutions Collecting From Web of "Linux上的C ++ makefile具有多个* .cpp文件"

你需要编译你使用的所有.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++

你的Makefile应该看起来像这样,它可以利用隐式规则 :

 all: main CXXFLAGS+=-g -Wall LDLIBS+=-lstdc++ main: file1.o main.o