gpt4 book ai didi

C++ Makefile 头文件和 cpp

转载 作者:太空狗 更新时间:2023-10-29 23:43:48 27 4
gpt4 key购买 nike

我正在尝试创建一个 Makefile,但我真的很挣扎。我有 3 个文件; main.cpp、garage.cpp 和 garage.hpp。以下命令有效,但我无法弄清楚如何将其转换为生成文件。任何帮助将不胜感激。 -std=c++0x 很重要,因为如果我删除它并用其他东西替换它,它将无法编译。再次感谢。

工作

g++ -std=c++0x -Wall -o main main.cpp garage.hpp garage.cpp

最佳答案

仅供引用,将头文件 (garage.hpp) 添加到编译/链接行是不对的。只应将源文件 (.cpp) 放在编译行上。

@gowrath 的解决方案很容易理解,但它与您的命令行解决方案完全相同:它没有利用 make 的任何功能。与使用 makefile 相比,只编写 shell 脚本或别名来执行此操作会更容易。

@Rahul 的解决方案阐明了所有内容,但没有利用 make 的任何功能来减少编写 makefile 时的输入或工作量。

Make 实际上有大量的内置规则。为了自定义它们,您只需设置标准变量的值,make 将完成剩下的工作。你可以写这个 makefile:

CXX = g++
CXXFLAGS = -std=c++0x -Wall

OBJECTS = main.o garage.o

main: $(OBJECTS)
$(CXX) $(CXXFLAGS) -o $@ $^

$(OBJECTS): garage.hpp

链接规则使用automatic variables以避免必须重新键入目标(main)或先决条件(main.ogarage.o)。

最后一行确保如果 garage.hpp 文件发生变化,make 知道它必须重新编译源文件。您不必编写规则来告诉 make 如何 编译源文件:它已经知道如何去做。

关于C++ Makefile 头文件和 cpp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41205042/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com