链接器工具 LINK、LIB、DUMPBIN 和 EDITBIN 共享生成这些错误和警告的同一可执行文件。 这些工具生成 LNKxxxx 格式的警告,其中 xxxx 是一个四位数字。
重要
Visual Studio 编译器和生成工具可报告多种类型的错误和警告。 发现错误或警告后,生成工具可做出有关代码意向的假设并尝试继续,因此,可能会同时报告更多问题。 如果工具做出错误假设,则后续错误或警告可能不适于你的项目。 纠正项目中的问题时,请始终先纠正报告的第一个错误或警告,然后在通常情况下重新生成。 一个修复程序可以解决多个后续错误。
若要在 Visual Studio 中获取有关特定诊断消息的帮助内容,请在“输出”窗口中选择该消息,然后按 F1 键。 Visual Studio 会打开该错误的文档页(如果存在)。 还可以使用页面顶部的搜索工具查找有关特定错误或警告的文章。 或者,按工具浏览错误和警告列表,并在此页面上的内容列表中键入内容。
注意
并非所有 Visual Studio 错误或警告均有记录。 在许多情况下,诊断消息将提供所有可用信息。 如果登录此页面并认为错误或警告消息需要其他说明,请使用此页面上的反馈按钮告知我们。 如果认为错误或警告是错误的,或者发现了工具集的其他问题,请在开发者社区网站上报告产品问题。 还可以在 IDE 中发送反馈并输入 bug。 在 Visual Studio 中,转到菜单栏并选择 帮助 > 发送反馈 > 报告问题,或使用 帮助 > 发送反馈 > 建议功能提交建议。 创建了一些编译程序错误主题,这些主题不是由编译程序发出的,但现在会重定向到此页面。
可以在 Microsoft Q&A C++ 论坛中找到有关错误和警告的其他帮助。 或者,在 Visual Studio C++ 开发者社区网站上搜索错误或警告编号。 还可以搜索 Stack Overflow 以查找解决方案。
有关指向其他帮助和社区资源的链接,请参阅 Visual C++ 帮助和社区。
链接器工具错误
| 错误 | Message |
|---|---|
| 链接器工具错误 LNK1000 | 未知错误; 请查阅文档以获取技术支持选项 |
| 链接器工具错误 LNK1103 | 调试信息已损坏;重新编译模块 |
| 链接器工具错误 LNK1104 | 无法打开文件“filename” |
| 链接器工具错误 LNK1106 | 无效的文件或磁盘已满:无法查找位置 |
| 链接器工具错误 LNK1107 | 无效或损坏的文件:无法在位置地址读取 |
| 链接器工具错误 LNK1112 | 模块计算机类型“type1”与目标计算机类型“type2”冲突 |
| 链接器工具错误 LNK1113 | 机器类型类型无效 |
| 链接器工具错误 LNK1120 | 未解析的外部符号 |
| 链接器工具错误 LNK1123 | 转换到 COFF 期间失败:文件无效或损坏 |
| 链接器工具错误 LNK1127 | 库已损坏 |
| 链接器工具错误 LNK1136 | 无效或损坏的文件 |
| 链接器工具错误 LNK1140 | 程序数据库的模块过多;请使用/PDB:NONE进行链接 |
| 链接器工具错误 LNK1141 | 在生成导出文件时失败 |
| 链接器工具错误 LNK1143 | 无效或损坏的文件:COMDAT 节号没有符号 |
| 链接器工具错误 LNK1152 | 无法解析一个或多个未装饰的符号 |
| 链接器工具错误 LNK1158 | 无法运行“filename” |
| 链接器工具错误 LNK1164 | 节区对齐方式 (数字) 大于 /ALIGN 数值 |
| 链接器工具错误 LNK1166 | 无法调整 offset=offset、va=value 的代码 |
| 链接器工具错误 LNK1168 | 无法打开用于写入的文件名 |
| 链接器工具错误 LNK1169 | 找到一个或多个重复定义的符号 |
| 链接器工具错误 LNK1170 | 命令文件中的某一行包含 最大长度 或更多字符 |
| 链接器工具错误 LNK1179 | 无效或损坏的文件:重复的 COMDAT “filename” |
| 链接器工具错误 LNK1181 | 无法打开名为“filename”的输入文件 |
| 链接器工具错误 LNK1188 | BADFIXUPSECTION::无效的修复目标“symbol”;可能的零长度节 |
| 链接器工具错误 LNK1189 | LIBTOOMANYMEMBERS:超出库的对象数目限制 |
| 链接器工具错误 LNK1196 | 无效或损坏的导入对象:未知版本 |
| 链接器工具错误 LNK1200 | 读取程序数据库“filename”时出错 |
| 链接器工具错误 LNK1201 | 写入程序数据库“filename”时出错;检查磁盘空间不足、路径无效或权限不足 |
| 链接器工具错误 LNK1211 | 找不到预编译类型信息;“filename”未链接或被覆盖 |
| 链接器工具错误 LNK1215 | 元数据操作失败 (HRESULT):错误 |
| 链接器工具错误 LNK1218 | 警告被视为错误;未生成输出文件 |
| 链接器工具错误 LNK1221 | 无法推断子系统,必须定义 |
| 链接器工具错误 LNK1223 | 无效或损坏的文件:文件包含无效的 .pdata 贡献 |
| 链接器工具错误 LNK1224 | 无效的图像基址 |
| 链接器工具错误 LNK1237 | 在代码生成期间,编译器引入了对使用 /GL 编译的模块“module”中定义的符号“symbol”的引用 |
| 链接器工具错误 LNK1240 | 无法编译 IDL 内容 |
| 链接器工具错误 LNK1241 | 资源文件“resource file”已经被指定 |
| 链接器工具错误 LNK1245 | 指定的子系统“subsystem”无效,/SUBSYSTEM 必须是 WINDOWS、WINDOWSCE 或 CONSOLE |
| 链接器工具错误 LNK1248 | 图像大小(“output_size”)超过允许的最大大小(maximum_size) |
| 链接器工具错误 LNK1256 | ALINK操作失败:原因 |
| 链接器工具错误 LNK1264 | 指定 /LTG:PGINSTRUMENT,但不需要生成代码;检测失败 |
| 链接器工具错误 LNK1277 | 在 pgd 中找不到对象记录(文件名) |
| 链接器工具错误 LNK1282 | 无法重定位/REBASE文件,因为它已被签名。 |
| 链接器工具错误 LNK1287 | 无效的托管入口点函数 |
| 链接器工具错误 LNK1296 | 无法加载文件名 |
| 链接器工具错误 LNK1301 | 找到的 LTCG clr 模块与 /LTCG:parameter 不兼容 |
| 链接器工具错误 LNK1302 | 仅支持链接安全 .netmodules;无法链接 .netmodule 文件 |
| 链接器工具错误 LNK1306 | DLL 入口点函数不能使用托管代码;请编译为本机代码 |
| 链接器工具错误 LNK1309 | 检测到 type1 模块,与 /CLRIMAGETYPE type2 选项不兼容。 |
| 链接器工具错误 LNK1312 | 无效或损坏的文件:无法导入程序集 |
| 链接器工具错误 LNK1313 | 检测到 ijw/native 模块;无法与纯模块链接 |
| 链接器工具错误 LNK1314 | 损坏或无效的 COFF 符号表(未定义的静态或标签符号) |
| 链接器工具错误 LNK1318 | 意外的 PDB 错误; 原因 “details” |
| 链接器工具错误 LNK1332 | <检测到在>一个模块中导入的 Windows 运行时类型计数,并在另一个模块中定义 |
| 链接器工具错误 LNK1352 | 无法将“section_name_1”和“section_name_2”合并到不同的部分 |
| 链接器工具错误 LNK1561 | 必须定义入口点 |
| 链接器工具错误 LNK2001 | 未解析的外部符号“symbol” |
| 链接器工具错误 LNK2004 | gp 相对修正溢出到“target”;短段“section”太大或超出范围。 |
| 链接器工具错误 LNK2005 | 已在对象中定义的符号 |
| 链接器工具错误 LNK2008 | 修复目标未校准‘symbol_name’ |
| 链接器工具错误 LNK2011 | 预编译对象未链接;映像可能无法运行 |
| 链接器工具错误 LNK2013 | 修复类型溢出异常。 目标“符号名称”超出范围 |
| 链接器工具错误 LNK2017 | 没有 /LARGEADDRESSAWARE:NO 的情况下,“symbol”重定位为“segment”无效 |
| 链接器工具错误 LNK2019 | 函数“function”中引用的未解析的外部符号“symbol” |
| 链接器工具错误 LNK2020 | 未解析的令牌“token” |
| 链接器工具错误 LNK2022 | 元数据操作失败(HRESULT):error_message |
| 链接器工具错误 LNK2023 | 无效的 dll 或入口点 <dll 或入口点> |
| 链接器工具错误 LNK2026 | 模块对于SAFESEH镜像不安全 |
| 链接器工具错误 LNK2027 | 未解析的模块引用“module” |
| 链接器工具错误 LNK2028 | “exported_function” (decorated_name)在函数“function_containing_function_call” (decorated_name)中被引用 |
| 链接器工具错误 LNK2031 | 无法为“function_declaration” decorated_name生成 p/invoke;元数据中缺少调用约定 |
| 链接器工具错误 LNK2033 | “type”的未解析 typeref 标记 (token) |
| 链接器工具错误 LNK2038 | 检测到“name”不匹配:值“value_1”与filename.obj中的值“value_2”不匹配 |
| 链接器工具错误 LNK2039 | 导入在 another.obj 中定义的 ref 类 <类型>;它要么应该被导入,要么应该被定义,但不能同时以两种方式存在。 |
链接器工具警告
| 警告 | Message |
|---|---|
| 链接器工具警告 LNK4001 | 未指定对象文件;使用的库 |
| 链接器工具警告 LNK4002 | 对象中定义的符号 |
| 链接器工具警告 LNK4006 | 已在对象中定义的符号;忽略第二个定义 |
| 链接器工具警告 LNK4010 | 无效的子系统版本号;假定使用默认子系统版本 |
| 链接器工具警告 LNK4014 | 找不到成员对象“objectname” |
| 链接器工具警告 LNK4020 | “filename”中的类型记录已损坏;某些符号和类型可能无法从调试器访问 |
| 链接器工具警告 LNK4022 | 找不到符号“symbol”的唯一匹配项 |
| 链接器工具警告 LNK4039 | 使用 /SECTION 选项指定的节“name”不存在 |
| 链接器工具警告 LNK4044 | 无法识别的参数“option”;已忽略 |
| 链接器工具警告 LNK4049 | 导入“filename.obj”中定义的符号“symbol” |
| 链接器工具警告 LNK4065 | “function” 无法进行排序,已被忽略 |
| 链接器工具警告 LNK4070 | 在 .EXP 中,/OUT:filename 指令不同于输出文件名 'filename',忽略该指令。 |
| 链接器工具警告 LNK4071 | 无法在后续链接上以增量方式链接 |
| 链接器工具警告 LNK4073 | 无法为 .ilk 文件创建映射;以非增加方式链接 |
| 链接器工具警告 LNK4075 | 由于“option2”规范而忽略“option1” |
| 链接器工具警告 LNK4076 | 无效的增量状态文件“filename”;以非增加方式链接 |
| 链接器工具警告 LNK4078 | 找到多个具有不同属性的“部分名称”段落 |
| 链接器工具警告 LNK4086 | 入口点“function”没有采用带有“number”字节参数的__stdcall调用约定;程序可能无法运行。 |
| 链接器工具警告 LNK4092 | 共享可写部分“section”包含重定位;映像可能无法正确运行 |
| 链接器工具警告 LNK4096 | /BASE 值“number”对于 Windows 95 和 Windows 98 无效;映像可能无法运行 |
| 链接器工具警告 LNK4098 | defaultlib “library” 与其他库的使用冲突;使用 /NODEFAULTLIB:library |
| 链接器工具警告 LNK4099 | 未在“object/library”或“path”中找到 PDB“filename”;链接对象就像没有调试信息一样 |
| 链接器工具警告 LNK4102 | 删除析构函数“name”的导出;映像可能无法正确运行 |
| 链接器工具警告 LNK4104 | 符号“symbol”的导出应为 PRIVATE |
| 链接器工具警告 LNK4105 | 没有使用选项“option”指定的参数;忽略选项 |
| 链接器工具警告 LNK4194 | /DELAYLOAD:dll 名称被忽略 |
| 链接器工具警告 LNK4197 | 导出多次指定的“exportname”;使用第一个规范 |
| 链接器工具警告 LNK4199 | /DELAYLOAD:dllname 被忽略;未从 dllname 找到任何导入 |
| 链接器工具警告 LNK4200 | 对象文件中损坏的行号信息被忽略 |
| 链接器工具警告 LNK4204 | “filename”缺少引用模块的调试信息;链接对象就像没有调试信息一样 |
| 链接器工具警告 LNK4205 | “filename”缺少引用模块的当前调试信息;链接对象就像没有调试信息一样 |
| 链接器工具警告 LNK4206 | 找不到预编译类型信息;“filename”未链接或覆盖;链接对象就像没有调试信息一样 |
| 链接器工具警告 LNK4210 | 节 section 存在;可能存在未处理的静态初始化器或终结器。 |
| 链接器工具警告 LNK4216 | 导出的入口点条目 |
| 链接器工具警告 LNK4217 | 在“filename_1.obj”中定义的符号“symbol”由函数“function”中的“filename_2.obj”导入 |
| 链接器工具警告 LNK4219 | 修正名称修正溢出。 目标“目标符号名称”范围不足,插入 thunk |
| 链接器工具警告 LNK4220 | 无效的“链接器选项”值“value”;假定为默认值 |
| 链接器工具警告 LNK4221 | 此对象文件未定义任何以前未定义的公共符号,因此不会由使用此库的任何链接作使用 |
| 链接器工具警告 LNK4222 | 不应为导出符号“symbol”分配序号 |
| 链接器工具警告 LNK4224 | 该选项不再受支持,将被忽略 |
| 链接器工具警告 LNK4227 | 元数据操作警告(HRESULT):warning_message |
| 链接器工具警告 LNK4229 | 找到无效指令 /指令;忽视 |
| 链接器工具警告 LNK4237 | /SUBSYSTEM:NATIVE 在从“dll”导入时指定;使用 /SUBSYSTEM:CONSOLE 或 /SUBSYSTEM:WINDOWS。 |
| 链接器工具警告 LNK4247 | 入口点“decorated_function_name”已经具有线程属性,因此忽略了“attribute”。 |
| 链接器工具警告 LNK4248 | 未解析的 “type” typeref token,映像可能无法运行。 |
| 链接器工具警告 LNK4253 | 节“section1”尚未合并到“section2”中;已合并到“section3”中。 |
| 链接器工具警告 LNK4254 | 节“section1”(偏移量)与“section2”(偏移量)合并,具有不同属性 |
| 链接器工具警告 LNK4286 | “filename_1.obj”中定义的符号“symbol”由“filename_2.obj”导入 |
| 链接器工具警告 LNK4306 | 辅助延迟加载导入地址表与主延迟加载导入地址表没有正确对齐。 这可能会对性能产生负面影响。 |
| 链接器工具警告 LNK4307 | 辅助延迟加载导入地址表副本与辅助延迟加载导入地址表没有正确对齐。 这可能会对性能产生负面影响。 |