Поделиться через


Ошибка средств компоновщика LNK1107

Недопустимый или поврежденный файл: не удается прочитать адрес расположения

Средство не удалось прочитать файл. Файл может быть поврежден или иметь непредвиденный тип файла.

Замечания

LNK1107 может произойти, если файл, переданный компоновщику или связанным средствам, поврежден. Чтобы устранить эту проблему, перестройте файл.

LNK1107 также может возникнуть, если процесс сборки помещает непредвиденный тип файла в список файлов, переданных средству. Компоновщик и связанные средства ожидают работы с определенными типами файлов. Например, компоновщик может использовать файлы объектов, файлы библиотеки, скомпилированные ресурсы и манифесты для создания исполняемого файла. Он не может создать исполняемый файл с помощью исходных файлов или БИБЛИОТЕК DLL. Чтобы устранить эту проблему, убедитесь, что процесс сборки передает только ожидаемые типы файлов в средство. Например, передайте .objи .lib.res файлы, а не .dll.cpp.h, или .rc файлы.

LNK1107 также может возникнуть, если вы пытаетесь передать исполняемый модуль .NET (A .dll или .netmodule файл, созданный с /clr:noAssembly помощью или /NOASSEMBLY) компоновщику. Чтобы устранить эту проблему, передайте .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 вместо этого.