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
标签:LNK4042,ignored,头文件,object,C++,specified,than,compiler From: https://www.cnblogs.com/live41/p/16858810.html