Errore degli strumenti del linker LNK1107
file non valido o danneggiato: impossibile leggere all'indirizzo del percorso
Lo strumento non è riuscito a leggere il file. Il file potrebbe essere danneggiato o avere un tipo di file imprevisto.
Osservazioni:
LNK1107 può verificarsi se un file passato al linker o agli strumenti correlati è danneggiato. Per risolvere questo problema, ricompilare il file.
LNK1107 possono verificarsi anche se il processo di compilazione inserisce un tipo di file imprevisto nell'elenco dei file passati allo strumento. Il linker e gli strumenti correlati si aspettano di lavorare su tipi di file specifici. Ad esempio, il linker può usare file oggetto, file di libreria, risorse compilate e manifesti per creare un eseguibile. Non può creare un eseguibile usando file di origine o DLL. Per risolvere questo problema, verificare che il processo di compilazione passi solo i tipi di file previsti allo strumento. Ad esempio, passare .obj
i file , .lib
e .res
, non .cpp
, .h
.dll
, o .rc
.
LNK1107 può verificarsi anche se si tenta di passare un modulo eseguibile .NET (A .dll
o .netmodule
file creato con /clr:noAssembly
o /NOASSEMBLY
) al linker. Per risolvere questo problema, passare invece il .obj
file.
Esempio
Compilare questo esempio usando cl /clr /LD LNK1107.cpp
:
// LNK1107.cpp
// compile with: /clr /LD
public ref class MyClass {
public:
void Test(){}
};
Se si specifica link LNK1107.dll
quindi nella riga di comando, si otterrà LNK1107. Per risolvere l'errore, specificare link LNK1107.obj
invece.