问题描述
用VS编译时,可能会出现如以下警告:
- warning LNK4042: 对象被多次指定;已忽略多余的指定
同时出现的还会有如下错误产生:
- error LNK2001: 无法解析的外部符号
最主要原因是因为工程的不同路径下存在相同名称的文件或者是在属性窗口修改了文件的设定。
解决方法
方法1:项目右键 -> 属性 -> C/C++ -> 输出文件 -> 对象文件名,将原来的$(IntDir)改为$(IntDir)/%(RelativeDir)/
方法2:将LNK4042的.h和.cpp从项目中排除,然后再通过添加现有项方式将排除的.h和.cpp重新添加进来(注意一定要先排除再进行添加操作,否则问题仍然解决不了)