首页 > Windows开发 > 详细

VS2015--win32工程配置的一些想法之warning LNK4042: 对象被多次指定;已忽略多余的指定

时间:2016-02-21 14:23:33      阅读:869      评论:0      收藏:0      [点我收藏+]

一个工程很大,需要很多的文件。

如果都是我们自己写的文件,我们一般不会把实现不同功能的两个文件命以相同的名称。

但是,如果我们引入了第三方库的源码,这样就很有可能有相同名字的文件存在。

比如很多库都喜欢定义一个base.h文件用于放置一些最基本的东西。

这个时候,如果你的目录包含的不是很清晰的时候,你的编译器就会出现警告:
warning LNK4042: 对象被多次指定;已忽略多余的指定

我们暂且不说Google style把警告当错误看待。

你以为你可以忽略这个警告,那是打错特错的。

举个例子,你自己定义一个file.cc文件,里面实现了一些函数方法,比如你写了一个函数获取文件的路径:GetFilePath();

这个时候,你引入了一个第三方库,而且为了方便调试,你引入了源码。而这个库也包含一个名为file.cc的文件。

这个时候,build的时候,出现了上面的警告。

再编译你自己写的file.cc的时候就会出现错误了:
error LNK2001: 无法解析的外部符号

为什么?
就是因为这个警告,忽略了多余的指定。

解决方案:
项目上 右键 -> 属性 -> C/C++ -> 输出文件 -> 对象文件名 改为:
$(IntDir)/%(RelativeDir)/
技术分享

VS2015--win32工程配置的一些想法之warning LNK4042: 对象被多次指定;已忽略多余的指定

原文:http://blog.csdn.net/wangshubo1989/article/details/50706480

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!