2015-10-07 10 views
36

Ho appena sviluppato il mio primo programma in C++ e volevo mostrarlo a uno dei miei amici. Purtroppo, quando tenta di aprire l'exe, viene visualizzato un errore che indica "Manca MSVCP140.dll". Perché questo problema si verifica e come può/lo risolvere?MSVCP140.dll mancante

risposta

53

Se prendete i vostri amici scaricare la DLL runtime (@ risposta di Kay), o compilare l'applicazione con il collegamento statico.

In Visual Studio, passare a Project tab -> properties - > configuration properties -> C/C++ -> Code Generation nella libreria di runtime scegliere /MTd per la modalità di debug e /MT per la modalità di rilascio.

In questo modo il compilatore incorporerà il runtime nell'app. L'eseguibile sarà notevolmente più grande, ma funzionerà senza bisogno di dll di runtime.

+0

Potreste forse aggiungere numeri quanto è grande un "ciao world.exe" con collegamenti dinamici e statici? – kay

+3

@Kay Il collegamento statico in genere include solo ciò che è necessario, non tutto nella libreria. L'aumento delle dimensioni dell'eseguibile sarà basato sulla quantità di runtime C utilizzata. – Andy

+0

In realtà, non è necessario eseguire il collegamento alla versione di debug del runtime, tranne che si desidera eseguire il debug della libreria di runtime. – user1810087

-1

Questa è probabilmente la libreria di runtime C++. Poiché si tratta di una DLL, non è inclusa nell'eseguibile del programma. Il tuo amico può scaricare quelle librerie da Microsoft.

+1

Siamo spiacenti, -1. Una risposta sulla falsariga di * "Questo probabilmente è ciò che è sbagliato, e il tuo amico può in qualche modo risolvere questo" * non è una risposta. Inoltre, il CRT non è solo una DLL. – IInspectable

52

PC del tuo amico manca le DLL di supporto di runtime per il programma:

+1

Questa è una delle cose che le applicazioni devono affrontare come parte della loro implementazione/installazione, poiché non tutto ciò che l'applicazione utilizza è incorporato nel sistema operativo. Vedere [Distribuzione di applicazioni desktop native (Visual C++)] (https://msdn.microsoft.com/en-us/library/zebw5zk9.aspx). Si noti che se la propria applicazione era un'applicazione Windows Store, lo Store si occupa di distribuire il CRT Visual C++ per conto dell'utente. –

+0

Ricevo lo stesso errore sul mio PC, anche se ho installato Visual Studio 2015 completo. Il programma di installazione ridistribuibile si chiude, affermando che una versione più recente è già installata. qualche idea? – matth

2

Che di solito significa che il tuo amico non ha il ridistribuibile Microsoft per Visual C++. Naturalmente sto assumendo che tu stia usando VC++ e non MingW o un altro compilatore. Dal momento che il tuo amico non ha installato VS, non c'è alcuna garanzia che abbia installato il redistore.

VC++ Distro

Problemi correlati