View Full Version : [Visual Studio] Creare eseguibile portabile
Tramite Visual Studio ho realizzato un programmino in C che utilizza librerie opencv e opengl e vorrei renderlo disponibile come eseguibile senza che debba essere compilato.
Ho provato a creare un progetto di tipo Setup ma sinceramente non ho capito come fare per ottenere ciò che mi serve.
Qualcuno può darmi una mano?
Tramite Visual Studio ho realizzato un programmino in C che utilizza librerie opencv e opengl e vorrei renderlo disponibile come eseguibile senza che debba essere compilato.
Ho provato a creare un progetto di tipo Setup ma sinceramente non ho capito come fare per ottenere ciò che mi serve.
Qualcuno può darmi una mano?
puoi anche solo rilasciare l'exe con le relative dll associate, ricordandoti di compilare il modalità "Release".
Se vuoi anche creare un'installer devi usare la funzione "Setup" ma sinceramente io non l'ho mai provata.
puoi anche solo rilasciare l'exe con le relative dll associate, ricordandoti di compilare il modalità "Release".
Ho già fatto esattamente così e nel mio computer ovviamente funziona ma in altri computer, no. Anche con lo stesso sistema operativo.
forse è necessario installare anche i runtime...che versione di visual studio stai usando?
visual studio 2008
prova ad installare questo sugli altri pc dove non parte il programma.
http://www.microsoft.com/downloads/details.aspx?FamilyID=9b2da534-3e03-4391-8a4d-074b9f2bc1bf&displaylang=en
E' proprio quello che vorrei evitare :(
Su Internet siamo circondati da programmi e programmini che chiunque può eseguire facilmente con o senza installazione... vorrei provarci anch'io senza avere la necessità di dipendere da ulteriori installazioni.
yggdrasil
03-02-2009, 17:51
basta linkare staticamente tutte le librerie dentro l'eseguibile o comunque fornire le varie dll all'interno della stessa cartella.
se provi ad eseguire l'eseguibile compilato in modalità release su un altro pc che capita?
click destro sul progetto, Properties, in Configuration seleziona la configurazione di Release, poi vai su C/C++, Code Generation, e imposta Runtime Library a Multi-threaded (/MT). l'eseguibile finale sará un po' piu grosso ma avrai eliminato la dipendenza dall'ultima versione del runtime di Visual C++.
in alternativa dovresti far capire a Visual Studio che quando genera il Manifest File deve metterci la direttiva che imposta la dipendenza con una versione piu vecchia del runtime, ma non so come si faccia; elimina la dipendenza e vai tranquillo.
PS: tutto il problema esiste solo se il programma finale deve girare su XP; Vista e Seven dispongono giá dell'ultima versione del runtime.
click destro sul progetto, Properties, in Configuration seleziona la configurazione di Release, poi vai su C/C++, Code Generation, e imposta Runtime Library a Multi-threaded (/MT). l'eseguibile finale sará un po' piu grosso ma avrai eliminato la dipendenza dall'ultima versione del runtime di Visual C++.
Fatto ma il problema persiste. Viene visualizzato un messaggio di errore "applicazione non correttamente inizializzata ecc. ecc.".
Sia su XP che su Vista.
basta linkare staticamente tutte le librerie dentro l'eseguibile o comunque fornire le varie dll all'interno della stessa cartella.
Ho già messo le dll che servono, che poi sono quelle riguardanti opencv: highgui, cv e cxcore. Infatti la prima volta che ho provato a eseguire il programma sul mio pc al di fuori di visual studio, mi diceva che mancavano le dll... le ho quindi inserite nella stessa directory e ha funzionato.
Ho già messo le dll che servono, che poi sono quelle riguardanti opencv: highgui, cv e cxcore. Infatti la prima volta che ho provato a eseguire il programma sul mio pc al di fuori di visual studio, mi diceva che mancavano le dll... le ho quindi inserite nella stessa directory e ha funzionato.
prova a postare uno screenshot dell'errore sull'altro pc
prova a postare uno screenshot dell'errore sull'altro pc
In questo momento non posso accedere all'altro pc, comunque l'errore era "applicazione non correttamente inizializzata (0xc0150002)".
vBulletin® v3.6.4, Copyright ©2000-2026, Jelsoft Enterprises Ltd.