未定义的引用…被引用的东西
Undefined reference to... Something that IS referenced
这个问题并不新鲜,但我真的不知道我在这里做错了什么。程序应该接受一个表达式,修改它,调用一些汇编代码,然后显示结果,但不知何故,在包括包含所需分析函数的analysis .h文件之后,main似乎在访问上述函数时遇到了问题。
除了写#include "analyse.h"
,我还应该做什么?
(此外,"分析"部分不是我的,我不能修改它。我只能修改main
提前感谢!
错误:
undefined reference to `shuntingYard(char*, char*, int)'
undefined reference to `makeTree(char*)'
undefined reference to `deleteTree(Noeud*)'
主:
#include <iostream>
#include "analyse.h"
using namespace std;
int main()
{
char entry[500];
char* pEntry = entry;
char polonaise[1000];
char* pPolonaise = polonaise;
Noeud* root;
string rawEntry;
//read expression
cin >> rawEntry;
for(size_t i = 0; i < rawEntry.size() ; i++)
entry[i] = rawEntry[i];
//convert tree
shuntingYard(pEntry, pPolonaise, rawEntry.size());
root = makeTry(pPolonaise);
//* ... */
deleteTry(root);
return 0;
}
Analyse.h:
#ifndef ANALYSE_H
#define ANALYSE_H
#include <stdio.h>
#include <string.h>
#include <stack>
#define TYPE_NOMBRE 0
#define TYPE_OPERATEUR 1
#define TYPE_VARIABLE 2
using namespace std;
struct Noeud
{
int type;
int valeur;
Noeud* gauche;
Noeud* droite;
};
/* ... */
void shuntingYard(char *,char*, int);
/* ... */
Noeud* makeTree(char *);
/* ... */
void deleteTree(Noeud*);
#endif
您需要链接包含实现的代码(或库)。
如果你得到了实现的源代码(analyze .cpp),那么你可以编译并将其链接到你的可执行文件中。
如果你有一个共享的对象/dll来实现,那么你需要链接到。so/.lib。
如果你有一个静态库,那么你需要链接到。a/.lib.
相关文章:
- 编译C++时未定义的引用
- 如何修复此错误:未定义对"距离(浮点数,浮点数,浮点数,浮点数,浮点数)"的引用
- 我的项目不会像"undefined reference to `grpc::g_core_codegen_interface'"那样使用未定义的引用错误进行编译
- 对C宏的未定义引用,但在定义它时会出现重新定义错误
- 未定义的引用在哪里
- 编译时的 CImg 库返回对"__imp_SetDIBitsToDevice"的未定义引用
- 对Py_Initialize()的未定义引用
- 使用mysql c++连接器的未定义引用
- 未定义的引用 .. 使用 OpenCV 编译 C++ 代码时,从命令行
- 对 Scalar ::Scalar() 的未定义引用
- 已定义函数时出现 G++ "未定义的引用"错误
- 链接 cmake 时出现未定义的引用错误
- 对复制 CTOR 和 CTOR 的未定义引用
- 错误:未定义对'oboe::AudioStreamBuilder::openStream(oboe::AudioStream**)'的引用
- 右值引用未定义的行为
- 对"vtable for DigitalClock"的未定义引用 - 未定义对"DigitalClock::staticMetaObject"的引用 - Qt
- 函数类型到函数类型的引用:未定义的引用
- avcodec_alloc_context引用未定义,但ffmpeg链接顺序正确
- 从c++调用Fortran子程序,链接时引用未定义
- 枚举引用未定义,但位于包含的头文件中