我们经常在写C++程序的时候 回用到第三方库。或者自己写的库给别人使用。所以经常回遇到链接错误。总结写一下链接错误的原因。
1 有声明 无实现。
我们声明了变量,但是没有去实现。这样的话回出现链接错误。编译的时候,编译器只要知道这个变量的类型就可以。常常是全局变量忘记。
2 没有_declspec(dllexport) ,我们的第三方库没有导出的情况下,是使用不了的。
3 没有_declspec(dllimport) 同样对于使用第三方库,我们也要导入import。
4导出类的时候,当然dll是建议导出类的, 也可以到处,导出类,这个类是导出了,但是类中包含了其他类,同样要导出。
5缺失lib库。可以用
a>vs2010等加上(具体在
项目、属性、链接器、常规、附加库目录:填写附加依赖库所在目录 分号间隔多项
项目-->属性-->配置属性-->链接器-->输入-->附加依赖依赖项(使用空格或分号间隔多项。))
b>用#pragma comment(lib,"xx.lib")
6注意路径 怀疑路径的问题,可以先用绝对路径试一下。
相对路径 ./ 当前文件所在的目录
../ 当前文件所在的上一层目录
../../ 当前文件所在目录的上一层目录的上一层目录
6 版本问题: 确认编译时debug 还是release 。第三方库是何种版本,一定要一致,编译的是多少位 是32还是64位的。都要一致