C++ 错误:未定义文件中的第一个引用符号

C++ 错误:未定义文件中的第一个引用符号,c++,pointers,nachos,C++,Pointers,Nachos,我得到这个错误,我不知道如何修复它。请求构造函数采用字符串类型,我认为我在request.h文件中没有正确实现。 错误: 代码: 定义构造函数的request.cc文件 #include "request.h" Request :: Request(char *urll, int requestIDD, int requesterIDD ) { url = *urll requestID = requestIDD; requesterID =

我得到这个错误,我不知道如何修复它。请求构造函数采用字符串类型,我认为我在request.h文件中没有正确实现。 错误:

代码:

定义构造函数的request.cc文件

#include "request.h"

    Request :: Request(char *urll, int requestIDD, int requesterIDD )
    {
      url = *urll
      requestID = requestIDD;
      requesterID = requesterIDD;

    }

让我们先尝试理解错误

ld:fatal:符号引用错误。没有写入nachos的输出

这意味着这是一个关联问题。链接器无法找到某些符号的定义

文件Request::Request(char*,int,int)threadtest.o中未定义的第一个引用符号

这里的重要信息是-
Request::Request(char*,int,int)
threadtest.o
。因此,您有一个源文件名
threadtest.cpp
,在这里您正在实例化
Request
对象。理解在
threadtest.cpp
中包含头(可能是
Request.h
)有助于编译器查找声明。链接器尝试从所有对象文件中查找符号的定义,并形成一个可执行文件


因此,可能您没有编译
Request.cpp
,或者忘记链接
Request.o

您在哪里定义了构造函数定义?您正在编译并链接该源文件吗?您的
请求
构造函数没有函数体确保
请求.cc
包含在生成中。
class Request
{
 public:
  //constructor intializes request type                                                              

  Request(char *u, int rqtID, int rqtrID);
  char *url;
  int requestID;
  int requesterID;


};
#include "request.h"

    Request :: Request(char *urll, int requestIDD, int requesterIDD )
    {
      url = *urll
      requestID = requestIDD;
      requesterID = requesterIDD;

    }