c++ - 写一个makefile把一个.h .hpp和.cpp一起编译成可执行文件

标签 c++ makefile g++

所以我有一个简单的问题。

我有文件 List.hpp , List.h , 和 test_list.cpp

List.hpp 包含 List.h 文件的函数定义。 List.h 文件在倒数第三行包含“List.hpp”。 test_list.cpp 运行程序并在顶部包含“List.h”。

我需要一个 makefile 来将它们编译成可执行文件“project.x”。

到目前为止有这个:

    proj2: List.o test_list.o
        gcc -o proj2.x List.o test_list.o

    List.o:
        gcc -c List.hpp


    test_list.o:
        gcc -c test_list.cpp

    clean:
        rm *.o proj2.x

但是,它会导致各种错误,所有错误都处理具有 List <T> 的行在其中,说明 List不命名类型。我认为这是因为我没有正确包含头文件。

我将如何制作这个 makefile?

最佳答案

根据文件扩展名和您的描述判断,您正在编译 C++ 代码。

因此您应该使用 C++ 编译器:g++gcc 是一个 C 编译器,不了解 C++。

你真的应该让 make 为你编译你的代码,它知道该做什么:

proj2: test_list.o
        $(CXX) $(LDFLAGS) $(LDLIBS) -o $@

clean:
        rm *.o proj2

关于c++ - 写一个makefile把一个.h .hpp和.cpp一起编译成可执行文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39986509/

相关文章:

c++ - 使用另一个模板类的嵌套名称说明符专门化一个模板类

makefile - Asterisk 配置中的 make & make install 未完成

c++ - 在单元测试文件 : 的 Makefile 中包含 gtest 库

c++ - 使用 g++ mac 包括 GLEW、glfw3 和 glm

c++ - 在 C++ 中使用指针初始化结构成员

c++ - 如何创建具有 N 种不同类型的变量成员的模板类,以便

c++ - 无法加载具有外部依赖项的库问题

c++ - 在 C++ 中写入文本文件时使用 bool 标志的问题

c - 使用sdl2在gitlab中构建管道失败

c++ - 友元函数的作用域