Perché si verifica un errore irreversibile “LNK1104: impossibile aprire il file 'C: \ Program.obj'” quando compilo un progetto C ++ in Visual Studio?

StackOverflow https://stackoverflow.com/questions/133698

  •  02-07-2019
  •  | 
  •  

Domanda

Ho creato un nuovo progetto C ++ in Visual Studio 2008. Nessun codice è stato ancora scritto; Sono state modificate solo le impostazioni del progetto.

Quando compilo il progetto, ricevo il seguente errore fatale:

  

errore irreversibile LNK1104: impossibile aprire il file 'C: \ Program.obj'

È stato utile?

Soluzione

Questo particolare problema è causato specificando una dipendenza in un file lib che aveva spazi nel suo percorso. Il percorso deve essere racchiuso tra virgolette affinché il progetto venga compilato correttamente.

In Proprietà di configurazione - > Linker - > Input delle proprietà del progetto, esiste una proprietà Dipendenze aggiuntive . Questo problema è stato risolto modificando questa proprietà da:

  

C: \ Programmi \ sofware   sdk \ lib \ library.lib

A:

  

" C: \ Programmi \ sofware   sdk \ lib \ library.lib "

Dove ho aggiunto le virgolette.

Altri suggerimenti

Questo può accadere se anche il file è ancora in esecuzione.

  

: -1: errore: LNK1104: impossibile aprire il file 'debug \ ****. exe'

Il problema è scomparso per me dopo aver chiuso e riaperto Visual Studio. Non sono sicuro del motivo per cui si è verificato il problema, ma potrebbe valere la pena tentare.

Questo era su VS 2013 Ultimate, Windows 8.1.

Verifica anche che non sia attivato: Proprietà di configurazione - > C / C ++ - > Preprocessore - > Preprocessa a un file .

Ho avuto lo stesso problema, causato da un ", " nel nome di una cartella del percorso libreria aggiuntivo. Risolto modificando il percorso libreria aggiuntivo.

Il mio problema era un'estensione .lib mancante, stavo solo collegando contro mylib e VS ha deciso di cercare mylib.obj .

Nel mio caso si trattava di un riferimento errato. Il progetto ha fatto riferimento all'output di un altro progetto, ma quest'ultimo non ha prodotto il file dove il primo cercava.

Per un progetto di assemblaggio (Nome progetto - > Costruisci dipendenze - > Costruisci personalizzazioni - > masm (selezionato)), l'impostazione Genera elenco sorgente preelaborato su Vero ha causato il problema anche per me, cancellando l'impostazione risolto. VS2013 qui.

Ho riscontrato lo stesso problema con il linker che si lamenta della mancanza dell'eseguibile principale. Questo è successo durante la nostra porta di soluzione al nuovo Visual Studio 2013 . La soluzione è un variegato mix di progetti / codice gestiti e non gestiti. Il problema (e la correzione) è finito per essere un file app.config mancante nella cartella della soluzione. Ci è voluto un giorno per capirlo :(, poiché il registro di output non è stato molto utile.

Ho controllato tutte le mie impostazioni in base a questo elenco: http: // msdn.microsoft.com/en-us/library/ts7eyw4s.aspx#feedback . È utile per me e per la mia situazione, scopro che Link Dependency delle proprietà dei progetti ha una doppia virgoletta, che non dovrebbe esserci.

Ho avuto lo stesso errore, solo con un pacchetto Nuget che avevo installato (uno che non è solo intestazione) e poi ho provato a disinstallarlo.
Ciò che era sbagliato per me era che stavo ancora includendo un'intestazione per il pacchetto che ho appena disinstallato in uno dei miei file .cpp (piuttosto stupido, sì).
Ho anche rimosso le directory delle librerie aggiuntive collegate ad esso in Project - > Proprietà - > Linker - > Generale , ma ovviamente inutilmente poiché stavo ancora cercando di fare riferimento all'intestazione inesistente.

Sicuramente un messaggio di errore confuso in questo caso, poiché il nome dell'intestazione era < boost / filesystem.hpp > ma l'errore mi ha dato " impossibile aprire il file 'llibboost_filesystem-vc140- mt-gd-1_59.lib '" e nessun numero di riga o altro.

Ho avuto lo stesso problema, ma la soluzione per il mio caso non è elencata nelle risposte. Il mio programma antivirus (AVG) ha determinato il file MyProg.exe come virus e lo ha inserito nel "magazzino dei virus". Devi controllare questo magazzino e se il file è lì, quindi ripristinalo. Mi ha aiutato.

Soluzione 1 (per il mio caso): riavvia il processo di Windows Explorer (sì, il file manager di Windows).

Soluzione 2:

  1. Chiudi Visual Studio. Disconnessione da Windows
  2. Accedi, riapri Visual Studio
  3. Costruisci come al solito. Ora crea e può accedere al file problematico.

Presumo che a volte il file system o chiunque lo controlli si perda con le sue autorizzazioni. Prima di riavviare la sessione di Windows, ha tentato di terminare i processi zombie msbuild32.exe , riavviare Visual Studio, verificare che nessuno mostrasse il file problematico. Nessun problema di configurazione build. Succede di tanto in tanto. Alcune cose interne in Windows non si risolvono, hanno bisogno di un riavvio.

Sto rispondendo perché non vedo questa particolare soluzione elencata da nessun altro.

Apparentemente il mio antivirus (Ad-Aware) stava segnalando una DLL da cui dipende uno dei miei progetti ed eliminandolo. Anche dopo aver escluso la directory in cui risiede la DLL, lo stesso comportamento è continuato fino a quando non ho riavviato il mio computer.

Nel mio caso, avevo sostituito i file della libreria matematica da un precedente corso di Game Engine Graphics con GLM. Il problema era che non li avevo aggiunti al progetto in Esplora soluzioni di Visual Studio (anche se si trovavano nel repository del progetto).

Ho riscontrato questo problema insieme all'errore LNK2038, seguito da post per separare le DLL RELEASE e DEBUG. In questo processo avevo ripulito l'intera cartella in cui risiedevano queste dipendenze.

Fortunatamente ho avuto un backup di tutti questi file e ho ottenuto il file per il quale questo errore veniva restituito nella cartella DEBUG per risolvere il problema. Il codice di errore era in qualche modo fuorviante in quanto ho dovuto dedicare molto tempo a venire a questo suggerimento da una delle risposte di questo post di nuovo.

Spero che questa risposta aiuti qualcuno nel bisogno.

L'ho risolto aggiungendo un progetto esistente alla mia soluzione , che ho dimenticato di aggiungi per la prima volta.

Ho avuto lo stesso errore:

fatal error LNK1104: cannot open file 'GTest.lib;'

Questo è stato causato da ; alla fine. Se hai più librerie, dovrebbero essere separate da spazio vuoto (barra spaziatrice), senza virgola o punto e virgola!

Quindi non usare ; o qualsiasi altra cosa quando si elencano le librerie in Proprietà del progetto > > Proprietà di configurazione > > Linker > > Inserisci

Ho riscontrato lo stesso problema con " Visual Studio 2013 " ;.

LNK1104: cannot open file 'debug\****.exe

Si è risolto dopo aver chiuso e riavviato Visual Studio.

Stavo avendo lo stesso problema, ho appena copiato il codice in un nuovo progetto e ho iniziato la compilazione. Qualche altro errore ha iniziato a venire. errore C4996: 'fopen': questa funzione o variabile potrebbe non essere sicura. Valuta invece di usare fopen_s

Per risolvere nuovamente questo problema, ho aggiunto la mia unica proprietà al progetto come di seguito. Progetto - > Proprietà - > Proprietà di configurazione - > c / c ++. In questa categoria è presente il nome del campo Definizioni del preprocessore Ho aggiunto _CRT_SECURE_NO_WARNINGS questo per risolvere il problema Spero che possa aiutare ...

Grazie

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top