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

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

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

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

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

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

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

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

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

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

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

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

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

解决方案:
项目上 右键 -> 属性 -> C/C++ -> 输出文件 -> 对象文件名 改为:
$(IntDir)/%(RelativeDir)/
这里写图片描述

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一苇渡江694

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值