【问题标题】:C++ makefile on Linux with Multiple *.cpp files带有多个 *.cpp 文件的 Linux 上的 C++ makefile
【发布时间】:2013-10-09 03:45:37
【问题描述】:

我正在尝试制作一个包含多个文件的 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 上运行良好。

【问题讨论】:

标签: c++ linux file makefile


【解决方案1】:

您需要编译您使用的所有 .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 makefile拖过来XD
【解决方案2】:

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

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

您的Makefile 应该看起来像这样,它可以利用implicit rules

all: main

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

【讨论】:

  • gcc 是一个 C++ 编译器。 g++ 使用 gcc,但只是将所有文件视为 C++ 文件(包括 *.c 文件)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多