gpt4 book ai didi

c++ - makefile 中 undefined reference 错误

转载 作者:行者123 更新时间:2023-11-28 03:18:57 25 4
gpt4 key购买 nike

我的 makefile 有问题

assignment3: BSTapp.cpp BST.o
g++ -o assignment3 BSTapp.cpp BST.o
BST.o: BST.cpp BST.h Node.o
g++ -c BST.cpp -o BST.o
Node.o: Node.h Node.cpp
g++ -c Node.cpp -o Node.o

获取对 Node 类中所有方法的 undefined reference 。但是如果我直接编译使用

g++ -o assignment3 BSTapp.cpp BST.h BST.cpp Node.h Node.cpp

一切正常。我在 makefile 中做错了什么?

最佳答案

因为您在 assignment3: 规则下的 makefile 命令中遗漏了 Node.o 文件:

g++ -o assignment3 BSTapp.cpp BST.o

应该是

g++ -o assignment3 BSTapp.cpp BST.o Node.o

备注:

我。 请不要自己编译 header !

g++ -o assignment3 BSTapp.cpp BST.h BST.cpp Node.h Node.cpp

应该是

g++ -o assignment3 BSTapp.cpp BST.cpp Node.cpp

二。您的 Makefile 非常杂乱无章。最好这样做:

OBJECTS = $(patsubst %.cpp, %.o, $(wildcard *.cpp))

all: assignment3

assignment3: $(OBJECTS)
g++ -o $@ $^

%.o: %.cpp
g++ -c -Wall -o $@ $<

关于c++ - makefile 中 undefined reference 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16023317/

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