日食赢了';t在添加.h和.cpp文件后生成项目 我创建了一个简单的C++项目,并自己制作了MaxFix.

日食赢了';t在添加.h和.cpp文件后生成项目 我创建了一个简单的C++项目,并自己制作了MaxFix.,c++,class,makefile,linker-errors,undefined-symbol,C++,Class,Makefile,Linker Errors,Undefined Symbol,生成文件如下所示: all: project1.exe clean: rm main.o project1.exe project1.exe: main.o g++ -g -o project1 main.o main.o: g++ -c -g main.cpp 最初我只有一个main.cpp文件。在我创建一个新类(Token.h)并将其添加到我的项目之前,一切都正常。我在主文件的顶部放置了一个新的include语句,但是当我尝试构建项目时,我在控制台中收到以下

生成文件如下所示:

all: project1.exe

clean:
    rm main.o project1.exe

project1.exe: main.o
    g++ -g -o project1 main.o 

main.o:
    g++ -c -g main.cpp
最初我只有一个main.cpp文件。在我创建一个新类(Token.h)并将其添加到我的项目之前,一切都正常。我在主文件的顶部放置了一个新的include语句,但是当我尝试构建项目时,我在控制台中收到以下消息:

make all 
g++ -c -g main.cpp
g++ -g -o project1 main.o 
Undefined symbols for architecture x86_64:
  "Token::print()", referenced from:
      _main in main.o
  "Token::Token()", referenced from:
      _main in main.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [project1.exe] Error 1

现在我已经添加了一个类,有人知道我必须做什么才能正确构建我的项目吗?我需要对makefile进行更改吗?如果是,什么?

将规则添加到生成文件:

token.o : token.cpp token.hpp
    g++ -g -c token.cpp
修改makefile中的某些规则:

main.o: main.cpp token.hpp
  g++ -g -c main.cpp

project.exe : main.o token.o
  g++ -o project.exe main.o token.o

在上面的片段中,
token.hpp
类作为依赖项添加到
main.o
token.o
文件作为依赖项添加到
project.exe
,并作为链接阶段的参数

除非您展示源代码,否则很难提供帮助。但是,从读取错误消息开始,您是否在任何地方都实现了
Token::print()
Token::Token()