繁体   English   中英

为什么在编译 c++ 程序时出现“未定义的引用”错误?

[英]Why am I get getting "undefined reference to" error when compiling a c++ program?

我刚刚在 ah 文件中添加了一个 function 定义,并在其对应的.cpp 文件中实现了它。 当我编译它时,我得到了这个编译错误:

./query.so: undefined reference to `Recognizer::skip_one_char(std::string const&, std::string const&)'
collect2: error: ld returned 1 exit status

在 Recognizer.h 中,我添加了这个:

bool skip_one_char(const string &content, const string &tag);

在 Recognizer.cpp 中,我添加了这个:

bool skip_one_char(const string &content, const string &tag){
     ...
     return false
 }

似乎一切都是正确的,但为什么我仍然会出现这个错误:

undefined reference 

此外,在我添加这个额外的 function 实现之前,package 编译并运行良好。

在 Recognizer.cpp 中,您声明了一个名为skip_one_char

bool skip_one_char(const string &content, const string &tag){
   ...
   return false;
}

...我认为您打算做的是在识别器 class 中创建一个具有该名称的方法,即:

bool Recognizer::skip_one_char(const string &content, const string &tag){
   ...
   return false;
}

...至少,该方法是 linker 正在寻找但找不到的方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM