我正在尝试创建一个 Makefile,但我真的很挣扎。我有 3 个文件; main.cpp、garage.cpp 和garage.hpp。以下命令有效,但我不知道如何将其转换为生成文件。任何帮助将不胜感激。 -std=c++0x 很重要,因为如果我删除它并用其他东西替换它,它将无法编译。再次感谢。
在职的
g++ -std=c++0x -Wall -o main main.cpp garage.hpp garage.cpp
原文由 Carl 发布,翻译遵循 CC BY-SA 4.0 许可协议
仅供参考,将头文件(
garage.hpp
)添加到编译/链接行是不对的。只有源文件(.cpp
)应该放在编译行。@gowrath 的解决方案很容易理解,但它与您的命令行解决方案完全相同:它没有利用 make 的任何功能。编写一个 shell 脚本或别名来执行此操作比使用 makefile 更容易。
@Rahul 的解决方案说明了所有内容,但没有利用 make 的任何功能,这些功能可以让您在编写 makefile 时减少输入或工作量。
Make 实际上有大量的内置规则。为了自定义它们,您只需设置标准变量的值,其余的由 make 完成。你可以写这个makefile:
链接规则使用 自动变量 来避免重新键入目标 (
main
) 或先决条件 (main.o
,garage.o
)。最后一行确保如果
garage.hpp
文件更改,make 知道它必须重新编译源文件。您不必编写规则来告诉 make 如何 编译源文件:它已经知道如何去做。