次の方法で共有


リンカー ツール エラー LNK1107

ファイルが無効または破損しています: 位置 address を読み取れません

ツールはファイルを読み取ることができませんでした。 ファイルが壊れているか、予期しないファイルの種類である可能性があります。

解説

LNK1107 は、リンカーに渡されたファイルまたは関連ツールが破損している場合に発生する可能性があります。 この問題を解決するには、ファイルをリビルドします。

LNK1107 は、ビルド プロセスでツールに渡すファイルのリストに予期しないファイルの種類が含まれている場合にも発生する可能性があります。 リンカーと関連ツールは、特定のファイルの種類に対して使用することが想定されています。 たとえば、リンカーは、オブジェクト ファイル、ライブラリ ファイル、コンパイル済みリソース、マニフェストを使って実行可能ファイルを作成できます。 ソース ファイルや DLL を使って実行可能ファイルを作成することはできません。 この問題を解決するには、ビルド プロセスで、想定されているファイルの種類のみをツールに渡す必要があります。 たとえば、.obj.lib.res ファイルを渡し、.cpp.h.dll.rc ファイルは渡さないようにします。

LNK1107 は、.NET 実行可能モジュール (/clr:noAssembly または /NOASSEMBLY で作成された .dll または .netmodule ファイル) をリンカーに渡そうとする場合にも発生する可能性があります。 この問題を解決するには、代わりに .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 を指定してください。