链接器工具错误 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