所以我有一个简单的问题。
我有文件 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/