您的位置:首页 > 其它

无法解析的外部符号(或者未将对象引用设置到对象实例)

2016-05-06 12:15 399 查看
前言:总之,没有定义变量或对象,没有为变量或对象分配具体的内存空间,没有实体。

如果引用的符号是外部某个文件定义的,则可在该符号前extern指明是外部符号,过了编译检测;但具体访问时(程序运行期)会报错【如未定义的静态变量】。因此,需要把定义部分的代码包括进工程里来。

参考:

1,没有加入相应lib库文件.

2.类成员有声明,但没有定义.或者定义与声明不符合.

3.没有包含源文件(需要在类视图查看有没有该类).例如

extern int i;

extern void g();

void f()

{

i++;

g();

}

int main()

{

}

4.符号定义在编译为 C 程序的文件中,而符号是在 C++ 文件中不带 extern "C" 修饰符声明的。在此情况下,请修改声明,例如不是使用:

extern int i;

extern void g();

而使用:

extern "C" int i;

extern "C" void g();

同样,如果在将由 C 程序使用的 C++ 文件中定义符号,请在定义中使用 extern "C"。

5.符号定义为静态,但稍后在文件外部被引用。

没有定义静态类成员。例如,应单独定义下面类声明中的成员变量 si:

#include <stdio.h>

struct X {

static int si;

};

// int X::si = 0; // uncomment this line to resolve

void main()

{

X *px = new X[2];

printf("/n%d",px[0].si); // LNK2019

}

6.调用的函数参数输入不正确。2019

另外类出常见错误:

cannot instantiate abstract class

一是继承类没有重写纯虚函数,二是该类是抽象类
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: