VS中无法解析的外部命令的解决办法
报错LNK2005外部符号
报错LNK2019外部符号
报错LNK1120外部符号
解决办法1:
检查自己报错的代码里,是否有类里声明的函数没有对应的实现。比如在person类的person.h中里定义了一个setid()函数,那么检查下person.cpp中是否有对应的person::setid()的实现。
如果检查没问题,还是报错,尝试改函数名字。我就遇到过这种问题。报错的是population里的一个initialization函数。一直找不到该符号,之后改成了initializationpop成功了。我猜测initialization这个名字比较常见,导致与底层用到的函数名重了。
解决办法2:
点击解决方案,如图,点重新生成后,重新运行试下
解决办法3:
如果自己之前是运行成功过。进入项目目录,删除1级文件夹下的Dedug和Release文件夹里的所有文件,看下自己是什么配置,可以有选择性的删。如果如下图,则可选择只删除Release。
然后进入放算法cpp和h的目录,里面也有一个Dedug和Release文件,同样删除里面所有文件。也可以看自己的配置有选择地删一个文件夹下就行。
但这种方法好像每次改动代码后都要重复1次。
解决办法4:
检查自己报错的代码里,是否有.h和.cpp文件不匹配的情况。
检查自己链接的静态库.lib的位数和编译位数是一致的。X86是32位的。