我正在尝试制作一个包含多个文件的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 上运行良好。
您需要编译您使用的所有 .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)
希望这可以帮助 :)
但是当我尝试编译时它给了我很多错误。我的代码在 Eclipse 上运行良好。
gcc
不是 C++ 编译器。改为使用g++
。
您Makefile
应该看起来像这样,它可以利用隐式规则:
all: main
CXXFLAGS+=-g -Wall
LDLIBS+=-lstdc++
main: file1.o main.o