无法解析的外部符号(或者未将对象引用设置到对象实例)
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
一是继承类没有重写纯虚函数,二是该类是抽象类
如果引用的符号是外部某个文件定义的,则可在该符号前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
一是继承类没有重写纯虚函数,二是该类是抽象类
相关文章推荐
- 网易云信(验证码短信接口接入)
- 技术与业务的抉择————论程序员的“瓶颈”问题
- cocos2dx中使用JPG图和只带Alpha的PNG图合成渲染(转)
- Spring基础 Quartz的配置
- Androidstudio下Generate signed apk提示Error: Expected resource of type id [ResourceType]解决办法
- Linux入门操作小技巧(持续更新)
- Spring 声明式事务配置管理方法
- elasticsearch2.3.1 集群安装
- 小米 VS 华为 - 抽象工厂模式
- HDU 2896 AC自动机
- 设计模式之单例模式(Singleton)
- android使用butterknife InjectView和BindView
- android 加载超大图片内存溢出问题
- 学习下 linux
- Spring基础 注解实现Bean依赖注入
- 01背包第k大
- 关于udev,sys,proc,tmpfs一些定义的问题
- C++程序设计必知:生存期
- Android API中被@hide注释的方法引用报错解决
- leetcode.279. Perfect Squares