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

时间:2014-09-26 18:03:38

标签: c++ pointers nachos

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

Undefined           first referenced
 symbol                 in file
Request::Request(char *, int, int)  threadtest.o
ld: fatal: Symbol referencing errors. No output written to nachos

代码:

class Request
{
 public:
  //constructor intializes request type                                                              

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


};

request.cc文件,其中定义了构造函数

#include "request.h"

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

    }

1 个答案:

答案 0 :(得分:2)

让我们先尝试理解错误。

  

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

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

  

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

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

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