Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/153.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;函数的未定义引用错误,即使该函数已存在_C++_Undefined Reference - Fatal编程技术网

C++ C++;函数的未定义引用错误,即使该函数已存在

C++ C++;函数的未定义引用错误,即使该函数已存在,c++,undefined-reference,C++,Undefined Reference,我在错误下面 Focus//build/libfocus.a(FocusParser.o):在函数FocusParser::parse(std::string const&)中: /builddir/project/src/Focus/FocusParser.cpp:22:未定义对yyFC_scan_bytes(char const*,int)”的引用 代码如下。如代码所示,函数已经在第12行定义。请帮忙 1 #include <stdio.h> 2 #include <

我在错误下面

Focus//build/libfocus.a(FocusParser.o):在函数
FocusParser::parse(std::string const&)中:
/builddir/project/src/Focus/FocusParser.cpp:22:未定义对
yyFC_scan_bytes(char const*,int)”的引用

代码如下。如代码所示,函数已经在第12行定义。请帮忙

  1 #include <stdio.h>
  2 #include <errno.h>
  3 #include <string.h>
  4
  5 #include "Exception.h"
  6 #include "Builder.h"
  7
  8 #include "FocusParser.h"
  9 #include "FocusState.h"
 10
 11 int yyFCparse();
 12 int yyFC_scan_bytes(const char *bytes, int len);
 13
 14 FocusStatePtr FocusParser::parse(const string &query)
 15 {
 16   // mutex lock for focus
 17   boost::mutex::scoped_lock lock(gFocusStateMutex);
 18
 19   // setup parse context
 20   gFocusState = FocusStatePtr(new FocusState());
 21
 22   yyFC_scan_bytes(query.data(), query.length());
 23
 24   yyFCparse();
 25
 26   // reset global state info
 27   FocusStatePtr result = gFocusState;
 28   gFocusState.reset();
 29
 30   return result;
 31 }
1#包括
2#包括
3#包括
4.
5#包括“Exception.h”
6#包括“Builder.h”
7.
8#包括“FocusParser.h”
9#包括“FocusState.h”
10
11 int yyFCparse();
12个整数yyFC_扫描字节(常量字符*字节,整数长度);
13
14 FocusStatePtr FocusParser::parse(常量字符串和查询)
15 {
16//用于聚焦的互斥锁
17 boost::mutex::作用域锁定锁(gFocusStateMutex);
18
19//设置解析上下文
20 gFocusState=FocusStatePtr(新FocusState());
21
22 yyFC_扫描_字节(query.data(),query.length());
23
24 yyFCparse();
25
26//重置全局状态信息
27聚焦状态PTR结果=gFocusState;
28 gFocusState.reset();
29
30返回结果;
31 }

第12行有yyFC_scan_字节的声明,它基本上向编译器保证可以使用带有该信号的函数,并且它的定义将在以后提供,可能在链接时提供


您可能没有将程序与函数的有效定义相链接,因此出现了错误消息-编译器在代码中保留了一个位置,它想调用yyFC_scan_字节的实现,但您没有提供该实现,链接器对此表示不满。

where is
int yyFC_scan_字节(const char*bytes,int len)
defined?您已经声明了该函数,但它的定义在哪里?@FoggyDay,“const char*”和“char const*”是一样的。