|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jan 2012
Messaggi: 1267
|
[C++/VS2010] Miei .exe su altri PC e .dll mancanti
Ciao,
ho creato un .exe con VS2010 e l'ho dato da testare ad un mio amico, ma non riesce a farlo funzionare perchè manca la libreria msvcp100.dll. Allora l'ho cercata nel mio pc e ne ho trovate un po'...gliele ho passate ma il programma continua a non andare per un altro errore. Più in generale, cosa diavolo dovrei fare per far funzionare i miei programmi su altri pc? Dire a VS2010 di compilarli in un modo "compatibile"? Includere una raccolta di .dll? Se sì, quali? Con i programmi che ho scritto in Fortran non ho mai avuto di questi problemi, ma devo dire che mi sarà capitato 2-3 volte, sono ancora nuovo in questo campo... |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
|
Non so nulla ma ricordo una cosa. Se vuoi distribuirlo devi compilarlo in release, non debug. Lo fai?
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: May 2001
Messaggi: 12945
|
Gli manca il runtime di Visual C++ 2010.
Comunque puoi scegliere di compilare includendo le librerie staticamente. |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Feb 2006
Città: Parma
Messaggi: 3010
|
Come ha scritto WarDuck (orcocàn, stavo scrivendo, non mi va di buttare il post
Piano "fai far qualcosa a lui": dovrebbe funzionare facendogli installare il Microsoft Visual C++ 2010 Redistributable Package appropriato. Piano "facciamo un bel fagottone": linking statico. Da impostare nel progetto. Breve post di un blog sull'argomento. Piano "caccia alle dll": usando Dependency Walker si rintracciano quelle non di sistema, poi si mettono tutte in una cartella insieme all'exe e si distribuisce questa cartella.
__________________
~Breve riferimento ai comandi GNU/Linux (ormai non molto breve...) |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Jan 2012
Messaggi: 1267
|
Grazie! E' strano perchè già ho pensato a far installare il pack, dal sito Microsoft, a mia sorella sul suo pc, ma non va cmq...
Ora vedo come includere le dll nel pacco Ho letto qualche tempo fa che bisogna distribuire le proprie app in release per motivi legali, ma non ho approfondito. Cmq ho fatto sì in release. |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Jan 2012
Messaggi: 1267
|
Alla fine il "breve articolo" dice solo cosa fare ma non come.
Bastava andare in Project -> Properties -> C/C++ Code Generation -> scegliere /MT anzichè /MTd. Però se Microsoft aggiorna la .dll per motivi di sicurezza, il mio .exe continuerà ad usare quella vecchia |
|
|
|
|
|
#7 |
|
Member
Iscritto dal: Oct 2005
Città: Cusano Milanino
Messaggi: 147
|
Attenzione, quello switch controlla la version debug / release delle librerie runtime da utilizzare.
Se utilizzi il link statico, cioè includi nell'eseguibile il tutto, è vero che il tuo pgm utilizzerà le librerie "vecchie". In caso contrario, quello che obbliga chi riceve il pgm ad installare il "distributable runtime", il pgm utilizzerà le librerie installate sul PC di destinazione. MS in genere mantiene la retrocompatibilità, quindi anche se il PC di destinazione aggiorna il runtime il pgm dovrebbe continuare a funzionare come prima. |
|
|
|
|
|
#8 | |
|
Senior Member
Iscritto dal: Jan 2012
Messaggi: 1267
|
Quote:
|
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 11:15.




















