1、通常出现这个问题的原因有以下几个:1.没有导入相应的lib库文件。2.类成员声明了,但是却没有定义。也可能是定义的与声明的不一致。3.没有包含响应的头文件和源文件。4.没有在项目属性页的链接器的命令行选项加入相应的类包。5.没有在c++包含目录和库目录加入相应的类包路径。找到原因之后就可以对症下药了。
2、对于动态链接库dll来说有一个原则,如果是Debug生成的dll那么只能在debug模式下调用;同样,release生成的dll只能在release下应用,否则会出现提示缺少库的错误,导致程序崩溃。所以我们在调用库的时候一定要先清楚是怎么生成的,这是一个需要注意的问题。
3、而通常对于第三方的SDK一般只提供给我们DLL,并提供相应的头文件及LIB文件;这里的LI幞洼踉残B文件是链接时需要的,它包含了DLL中函数的橇秆苡螳想关信息,不是静态编译产生的静态库,因此我们只需要在项目添加对这些LIB的依赖。一般情况下按照项目--》属性--》配置属性--》链接器-》输入--》附加依赖项 的方式在其中加入所需库文件,注意把库文件写进去,每个库文件后加分号,同时在“链接器--》常规--》附加库目录”中填入相应库所在目录。
4、还有一个需要注意的问题就是,通常需要把dll放在debug或者release的目录下,如果编译时提醒缺少哪个dll就将其放置在此目录下即可,否则会出现如下图的错误。
5、除此之外,还可以尝试着修改工程-属性-VC++目录的包含文件目录和库目录,将生成dll的工程的头文件和库文件都包含进去即可。有时候这对解决问题也是有帮助的。
6、最后一定要仔细检查一下引用的库文件,看看包含这些函数的文件是否加到工程文件中,也有可能是函数没有定义,而被引用了或者是工程中根本没有加入这些文件 ,都加入之后一般就没问题了。