LNK4042 object specified more than once; extras ignored的解决方法

C++项目编译时遇到警告(warning)

LNK4042 object specified more than once; extras ignored

 

原因

某个头文件(.h)的文件类型(item type)被设置成了C/C++ compiler,这个类型是.cpp文件的默认类型。

按微软的说法是,Visual Studio对于不同的文件类型设定了对应的处理工具。

例如,C/C++ compiler用的是cl.exe,C/C++ header用的是C/C++ Preprocessor。具体见下面官方文档链接。

 

解决方法

右键头文件(.h) -> 属性(properties) -> 配置属性(Configuration Properties) -> 通用(General) -> 文件类型(Item Type) ->

把C/C++ compiler改成C/C++ header,重新编译项目即可。

* 如果有多个头文件需要修改,可以多选后再右键。

 

* 根本原因

新建头文件时选了默认的C++ File (.cpp),后来又手动改后缀名为.h。

 

* 根本解决方法

如果新建的是头文件,先选择Header File (.h),再输入名字创建。

 

官方文档

https://learn.microsoft.com/en-us/cpp/build/reference/general-property-page-file

 

posted @   Clotho_Lee  阅读(403)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示