【发布时间】:2016-03-21 22:00:34
【问题描述】:
考虑以下微不足道的 Makefile。请注意,有两个类,每个类都有对应的 .h 和 .cpp 文件。
output: main.o class1.o class2.o
g++ main.o class1.o class2.o -o output
main.o: main.cpp
g++ -c main.cpp
class1.o: class1.cpp class1.h
g++ -c class1.cpp
class2.o: class2.cpp class2.h
g++ -c class2.cpp
clean:
rm *.o output
这个 Makefile 是否健壮?我怎样才能使它更健壮?有人可以提供这个 Makefile 的更强大的版本吗?它将在 64 位 Red Hat Linux 或 CentOS 机器上运行。
如果重要,我正在使用:
-gcc --version 4.8.4(来自 GNU 编译器集合)
-GDB版本:GNU gdb (Ubuntu 7.7.1 -0ubuntu5~14.04.2) 7.7.1
【问题讨论】:
-
您对“健壮”的理解是什么? Makefile 有一些缺陷(例如,无法设置强制和可选标志,没有自动依赖跟踪,没有 VPATH 构建)。
-
如果你使用 CMake,为什么还要有 Makefile?!
-
@Biffen - 我必须在没有 CMake 的情况下将应用程序发送给其他人。
-
@ensc - 更强大 == 将在我的教授 Linux 机器上正常工作。我不知道这些东西是什么意思,但这个任务很快就要到期了。你能用这些更改编辑我的代码吗?
-
你的头文件不会被包含在多个地方吗?