在使用vs2008调试程序的过程中,经常会絀现无法解析的外部符号问题,可能的原因有很多种,下面这些是我一年来积累的经验.
[0]出现无法解析可能是因为lib文件不正确,比如64位的编译配置,結果使用的是32位的lib包.
[1]只写了类声明但还没有写实现类,造成调用时无法解析
[2]声明和定义没有统一,造成链接不一致无法解析
[3]没有在项目屬性页的链接器的命令行选项加入相应的类包。
[4]没有在c++包含目录和库目录加入相应的类包路径
[5]在测试工程中被测文件目录可能需要包含被測类的cpp定义文件
[6]ICE接口测试时无法解析可能因为被测文件没有包含进相关的cpp文件,另外在TestSuite_ProjectRun.h文件中需要包含IProjectRun.h头文件,及相关的头文件(举例)
[7]import相关的无法解析内容,解决办法是在链接器的依赖项中加入相应的动态库
[8]出现如下错误的原因一般是动态库没有包进来__imp
出现这种错误的原因只有三种:
1 函数写错了或者是int main入口几个字母就错了
2 有函数的声明,但是函数没有内容
3 月函数的内容但是没有进行声明
如果dll中调用出错的话
一般是自巳的dll中没有加API声明导致的
也就是说dll类型的项目应当添加如下的声明才可以的:
然后所有的函数前面需要加上:
这样在别的函数中调用dll中的函数就可以了
就不会出现上述的错误了、