链接器工具错误 LNK1107
无效或损坏的文件:无法读取位置地址
该工具无法读取文件。 该文件可能已损坏,或者具有意外的文件类型。
备注
如果传递给链接器或相关工具的文件已损坏,则可能会出现 LNK1107。 若要解决此问题,请重新生成文件。
如果生成过程将意外的文件类型置于传递给该工具的文件列表中,也可能发生 LNK1107。 链接器和相关工具预期适用于特定文件类型。 例如,链接器可以使用对象文件、库文件、编译的资源和清单来创建可执行文件。 它无法使用源文件或 DLL 创建可执行文件。 若要解决此问题,请验证生成过程是否仅将预期的文件类型传递给该工具。 例如,传递 .obj
、.lib
和 .res
文件,而不是 .cpp
、.h
、.dll
或 .rc
文件。
如果尝试将 .NET 可执行文件模块(使用 /clr:noAssembly
或 /NOASSEMBLY
创建 .dll
或 .netmodule
文件)传递给链接器,则也会发生 LNK1107。 若要解决此问题,请改为传递 .obj
文件。
示例
使用 cl /clr /LD LNK1107.cpp
编译此示例:
// LNK1107.cpp
// compile with: /clr /LD
public ref class MyClass {
public:
void Test(){}
};
如果随后在命令行上指定 link LNK1107.dll
,将获得 LNK1107。 若要解决此错误,请改为指定 link LNK1107.obj
。