0

我收到此错误,但不知道如何解决。请求构造函数采用字符串类型,我认为我在 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;

    }
4

1 回答 1

2

让我们先尝试了解错误。

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

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

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

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

所以,可能你没有编译Request.cpp或忘记链接Request.o

于 2014-09-26T18:28:53.677 回答