现在的位置: 首页 > 综合 > 正文

无法解析的外部符号

2013年02月13日 ⁄ 综合 ⁄ 共 588字 ⁄ 字号 评论关闭

 无法解析的外部符号的情况发生原因:

  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

  一是继承类没有重写纯虚函数,二是该类是抽象类.

 

 

抱歉!评论已关闭.