8

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

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

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

我做了

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

但是当我尝试编译时它给了我很多错误。我的代码在 Eclipse 上运行良好。

4

2 回答 2

9

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

希望这可以帮助 :)

于 2013-10-02T16:55:49.397 回答
1

但是当我尝试编译时它给了我很多错误。我的代码在 Eclipse 上运行良好。

gcc不是 C++ 编译器。改为使用g++

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

all: main

CXXFLAGS+=-g -Wall
LDLIBS+=-lstdc++
main: file1.o main.o
于 2013-10-02T16:50:56.577 回答