LNK2019
- 序言
- LNK2019:无法解析的外部符号"__declspec
- LNK2019:无法解析的外部符号" public private函数名
- 1、有函数声明忘写定义
- 2、有种可能性是处于不同目录下去调用那个对应的文件接口
- 3、有种可能性,是因为跨类调用了inline函数
- 4、Q_OBJECT写了,但是报错
- LNK2001 无法解析的外部符号 "public: virtual struct QMetaObject const
- LNK2019:无法解析的外部符号"public: static
- LNK2019: 无法解析的外部符号"public_cdecl...
- 以上都不行时
- C1083 无法打开编译器生成的文件:"....moc_...obj"
序言
这节是我平时遇到的恶心的无法解析的外部符号LNK2019所指明的可能性和解决方向。
LNK2019:无法解析的外部符号"__declspec
以这种为前缀的基本上跟库相关的,说明无法正常调用库,一般是路径有问题,在属性上需要校准好;
C/C++ ->常规 -> 附加包含目录 -> 写库目录 …/bb
链接器 -> 输入 -> 附加依赖性 -> 写库的lib路径 …/bb/testlib.lib
.
LNK2019:无法解析的外部符号" public private函数名
1、有函数声明忘写定义
很大概率是你在头文件声明了函数,但是没有写对应的定义
.
2、有种可能性是处于不同目录下去调用那个对应的文件接口
C/C++ ->常规 -> 附加包含目录
在这里写下对应文件的路径即可。
.
3、有种可能性,是因为跨类调用了inline函数
去掉inline,正常调用就可以了。
.
4、Q_OBJECT写了,但是报错
在VS上运行的,但是Qt没事的情况下,只需要加上#include <qobject.h>
即可,写了也没用,可以重新构成/qmake一下,然后叉掉IDE再打开
.
LNK2001 无法解析的外部符号 "public: virtual struct QMetaObject const
在VS上运行的,但是Qt没事的情况下,只需要加上#include <qobject.h>
即可
.
LNK2019:无法解析的外部符号"public: static
很大概率是调用了另一个pri/pro的文件,导致无法正常找到对应函数
.
LNK2019: 无法解析的外部符号"public_cdecl…
用下面的方法即可,没更新过来而已
.
以上都不行时
qmake/重新生成一下,然后叉掉IDE再打开
.
C1083 无法打开编译器生成的文件:“…moc_…obj”
两个类同名了,无法分辨,换一个名字就行
.
上述的都不行,可以看看这个微软官方的报错文档