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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具