Risolto C++: imposibile eseguire il codice, libreria mancante

Sevenjeak

Utente Gold
23 Settembre 2010
333
58
26
202
Salve,

Dopo più di otto anni che ho studiato vari linguaggi di programmazione mi sono deciso ad iniziarmi a studiarmi l'unico linguaggio che ho tralasciato, il c++, ho scritto il primo codice di esempio preso da codingcreativo.it ( di solito uso le guide di html.it, questa volta però ho voluto evitare, visto che la loro guida comincia utilizzando le classi già al primo esempio ), ho compilato il codice è creato l'eseguibile con il comando g++ percorso_file_cpp -o file_eseguibile_da_creare.exe, e fin qui tutto bene, il problema si presenta quando eseguo il file exe creato, mi da questo errore:

L'eseguzione del codice non può proseguire perchè libgcc_s_dw2-1.dll non è stato trovato, per risolvere il problema. provare a reinstallare il programma

Oltre a questo mi dice che manca anche un'altra dll.

Io per compilare codice c e c++ ho installato sul pc minigw, non so, provo a reinstallarlo, oppure dal manager dei pacchetti di minigw dovrei installare solamente alcuni pachetti?
 
Hey ciao, puoi provare a creare l'eseguibile con questa stringa g++ my.cpp -o my.exe -static-libgcc, oppure scaricare libgcc_s_dw2-1.dll e aggiungerla nella cartella del file eseguibile. Prova e fammi sapere !
 
Ho provato in entrambi i modi ma niente, il problema si ripresenta.

In'oltre, provando a scaricare la dll ed a metterla nella directory bin di minigw mi dice che la dll è già presente, quindi o provato a rinominale la dll già presente in libgcc_s_dw2-1_old.dll per poi mettere la dll scaricata nella directory bin, ovviamente prima lo controllata con virustotal, ma niente, il problema persiste, mi dice sempre che la dll è mancante.

Posso reinstallarla mediante il gestore di pachetti di minigw?
 
Disinstalla tutto, assicurati anche di cancellare tutto quello che hai copiato o rinominato. Poi reinstalla seguendo le indicazioni scritte nelle FAQ, in particolare leggi l'ultimo post.
 
Ultima modifica:
Ok, ho levato la versione che avevo io ( avevo scaricato la versione zippata e no con l'installer )

Dopo di che, ho scaricato dal sito https://winlibs.com/ la zip della release più recente ( quella con scritto tra parentesi tonte latest ) presente sotto la voce UCRT runtime. Dopo aver fatto il tutto, ho riprovato ad ricompilare con il codice con in comando g++ nomefile.cpp -o eseguibiledagenerare.exe, la compilazione come sempre va bene, mi genera l'exe, ma quanto vado ad eseguirlo mi dice che una libreria dinamica manca ( non la stessa di prima ), cosa strana perchè, da quello che vedo, nella directory bin di minigw, la libreria indicatomi c'è

EDIT:

Per curiosità ho provato a compilare ed eseguire anche un codice scritto in c, me lo compila ma al momento di eseguire l'exe mi dice incompatibilità con la versione di Windows in esecuzione. Verificare le informazioni di sistema e contattare il distributore del software., quindi ora, oltre ad non andarmi con i programmi c++, non mi vanno neanche i programmi c, cosa che prima mi andavano, peggio di prima :-(
 
Se consulti attentamente il link vedrai che nella pagina consigliano di utilizzare un'altra versione, quella tradizionale (la MSVCRT) per la runtime library, che è compatibile per molte più versioni di Windows:

MSVCRT or UCRT runtime library?​

Traditionally the MinGW-w64 compiler used MSVCRT as runtime library, which is available on all versions of Windows.
Prova ad installare questa, forse così risolvi.
 
  • Mi piace
Reazioni: Sevenjeak
Scusami errore mio, mi dava errore di compatibilità perché usavo cpp al posto di gcc, comunque ora ho risolto utilizzando gcc per il codice c e c++ per il codice c++.

Anche se la versione ucrt mi andava per evitare errori futuri mi sono scaricato la versione msvcrt.

Grazie per le risposte.
 
  • Mi piace
Reazioni: --- Ra ---