C++ 错误:未定义文件中的第一个引用符号
我得到这个错误,我不知道如何修复它。请求构造函数采用字符串类型,我认为我在request.h文件中没有正确实现。 错误: 代码: 定义构造函数的request.cc文件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 =
#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;
}