|
Ho fatto casino con il Linker
|
| Autore |
Messaggio |
mude
Arrested Development
Messaggi: 7,140
Registrato: Nov 2008
Offline
|
#1
Ho fatto casino con il Linker
Sto usando ogre e qt
Ho sempre salvato l'eseguibile dell'applicazione nella cartella Bin di Ogre e tutto procedeva perfettamente.
Però non é il modo migliore di farlo quindi ho cambiato e l'ho fatto salvare nella cartella bin del progetto di visual studio 2010 cercando di cambiare tutte le variabili necessarie per il linker.
Mancavano alcune .dll nonostante mi pare gli fosse detto di cercarle nelle cartelle apposite, così le ho copincollate nella cartella dell'eseguibile, praticamente tutte sia di qt e che di Ogre.
Non mi da più dll mancanti ma crasha sia in release che in debug dandomi come causa un'arrore di memoria.
Come posso sapere cosa manca?Non sono riuscito a trovare niente a riguardo.
Le properties del progetto su VS 2010 non sono consultabili facilmente né sono esperto.
Cosa avrei dovuto modificare a mano?
.: DevLog | Twitter Pinaster Games | Twitter Personale :.
Beta
|
|
| 26-02-2012 22:29 |
|
enigma
Posting Freak
Messaggi: 1,875
Registrato: Nov 2009
Offline
|
#2
RE: Ho fatto casino con il Linker
Ho un'idea al riguardo: se lanci il programma fuori da VS, cioè come eseguibile normale, funziona?
Se si è solamente sbagliata la working directory del progetto, che deve essere quella dove butti fuori l'eseguibile (è sotto le opzioni di debug). In pratica non trova i file di configurazione di OGRE (cfg, plugins, ...) e crasha.
P.S. La copia delle dll necessarie puoi anche automatizzarla da VS, come evento post build.
Andrea Benedetti
twitter | LinkedIn
Il tempo è un grande maestro, ma sfortunatamente uccide tutti i suoi allievi.
(Questo messaggio è stato modificato l'ultima volta il: 26-02-2012 22:55 da enigma.)
|
|
| 26-02-2012 22:51 |
|
mude
Arrested Development
Messaggi: 7,140
Registrato: Nov 2008
Offline
|
#3
RE: Ho fatto casino con il Linker
(26-02-2012 22:51)enigma ha scritto: Ho un'idea al riguardo: se lanci il programma fuori da VS, cioè come eseguibile normale, funziona?
Se si è solamente sbagliata la working directory del progetto, che deve essere quella dove butti fuori l'eseguibile (è sotto le opzioni di debug). In pratica non trova i file di configurazione di OGRE (cfg, plugins, ...) e crasha.
P.S. La copia delle dll necessarie puoi anche automatizzarla da VS, come evento post build.
quando mancavano le dll mi dava dll x mancante, ora runtime error. I cfg,plugins non c'erano e li ho copiati a mano: ogre.cgf, plugins.cgf e resources.cfg manca qualcosa? ora controllo se c'é il log.
la working directory é ok.
come la automatizzo?
.: DevLog | Twitter Pinaster Games | Twitter Personale :.
Beta
|
|
| 26-02-2012 23:00 |
|
enigma
Posting Freak
Messaggi: 1,875
Registrato: Nov 2009
Offline
|
#4
RE: Ho fatto casino con il Linker
Ma se lanci l'eseguibile, che succede?
Andrea Benedetti
twitter | LinkedIn
Il tempo è un grande maestro, ma sfortunatamente uccide tutti i suoi allievi.
|
|
| 26-02-2012 23:03 |
|
mude
Arrested Development
Messaggi: 7,140
Registrato: Nov 2008
Offline
|
|
| 26-02-2012 23:15 |
|
enigma
Posting Freak
Messaggi: 1,875
Registrato: Nov 2009
Offline
|
#6
RE: Ho fatto casino con il Linker
(26-02-2012 23:15)mude ha scritto: runtime error 
E dentro la cartella dove sta l'eseguibile, oltre alle dll, hai anche tutti i file di configurazione (comprese le versioni di debug, se le usi, quelle _d)?
Perché solitamente con OGRE fa così quando non trova uno di questi file di configurazione, e infatti quando era nella directory bin dell'SDK ti andava tutto.
Deve essere un problema di questo tipo visto che hai solo cambiato delle proprietà del progetto e non il codice.
Se è un problema di questo tipo, debuggando dovresti avere il crash alla creazione della root o del render system di OGRE.
Andrea Benedetti
twitter | LinkedIn
Il tempo è un grande maestro, ma sfortunatamente uccide tutti i suoi allievi.
(Questo messaggio è stato modificato l'ultima volta il: 26-02-2012 23:29 da enigma.)
|
|
| 26-02-2012 23:26 |
|
mude
Arrested Development
Messaggi: 7,140
Registrato: Nov 2008
Offline
|
#7
RE: Ho fatto casino con il Linker
Sono tornato ad una versione funzionante ma continuo a eseguirlo dentro ogre, il problema non é Qt quindi forse erano i cfg.
Ormai lascio così per un'altro pò.
Un'altra cosa che non ho capito: come genere un'exe distrbuibile senza problemi?
.: DevLog | Twitter Pinaster Games | Twitter Personale :.
Beta
|
|
| 27-02-2012 0:28 |
|
enigma
Posting Freak
Messaggi: 1,875
Registrato: Nov 2009
Offline
|
#8
RE: Ho fatto casino con il Linker
Allora sono sicuro al 99.9% che il problema è quello che ho scritto sopra, ovvero manca o non trova qualche file Ogre. Bisogna anche vedere com'è la tua inizializzazione e dove cerca questi file.
Se vuoi/puoi condividi il progetto che gli do un'occhiata.
Per la distribuzione, ti conviene usare qualche tool per la creazione di pacchetti d'installazione, dove dovrai includere tutte le dll necessarie oltre alle risorse e file di configurazione. Dovrai anche includere i redistribuibili di VC.
Andrea Benedetti
twitter | LinkedIn
Il tempo è un grande maestro, ma sfortunatamente uccide tutti i suoi allievi.
|
|
| 27-02-2012 6:09 |
|
enigma
Posting Freak
Messaggi: 1,875
Registrato: Nov 2009
Offline
|
#9
RE: Ho fatto casino con il Linker
(27-02-2012 9:00)Yagami ha scritto: Scusa ma perche' non usi Unity ? non da' problemi con questi file chiamati librerie ( e che siamo all'ikea ??? ) ma quante ne so!!
Non so se te ne sei reso conto, ma hai rotto, almeno a me.
Andrea Benedetti
twitter | LinkedIn
Il tempo è un grande maestro, ma sfortunatamente uccide tutti i suoi allievi.
|
|
| 27-02-2012 9:06 |
|
mude
Arrested Development
Messaggi: 7,140
Registrato: Nov 2008
Offline
|
#11
RE: Ho fatto casino con il Linker
(27-02-2012 6:09)enigma ha scritto: Allora sono sicuro al 99.9% che il problema è quello che ho scritto sopra, ovvero manca o non trova qualche file Ogre. Bisogna anche vedere com'è la tua inizializzazione e dove cerca questi file.
Se vuoi/puoi condividi il progetto che gli do un'occhiata.
Per la distribuzione, ti conviene usare qualche tool per la creazione di pacchetti d'installazione, dove dovrai includere tutte le dll necessarie oltre alle risorse e file di configurazione. Dovrai anche includere i redistribuibili di VC.
ora lascio così ricontrollo dopo cioé fra qualche settimana, comunque dov'é l'impostazione per copiare tutte le .dll necessarie nella cartella dell'exe?
.: DevLog | Twitter Pinaster Games | Twitter Personale :.
Beta
|
|
| 27-02-2012 11:57 |
|
enigma
Posting Freak
Messaggi: 1,875
Registrato: Nov 2009
Offline
|
#12
RE: Ho fatto casino con il Linker
(27-02-2012 11:57)mude ha scritto: ora lascio così ricontrollo dopo cioé fra qualche settimana, comunque dov'é l'impostazione per copiare tutte le .dll necessarie nella cartella dell'exe?
Puoi aggiungere un evento Post-Build (Configuration Properties (del progetto) -> Build Events -> Post-Build Event) e metti, ad esempio:
Codice:
copy /Y "$(OGRE_HOME)bin\$(Configuration)\*.dll" "$(OutDir)"
Andrea Benedetti
twitter | LinkedIn
Il tempo è un grande maestro, ma sfortunatamente uccide tutti i suoi allievi.
|
|
| 27-02-2012 12:12 |
|
_tommo_
Mod nerdcore
Messaggi: 6,043
Registrato: Nov 2008
Offline
|
#13
RE: Ho fatto casino con il Linker
(27-02-2012 11:57)mude ha scritto: ora lascio così ricontrollo dopo cioé fra qualche settimana, comunque dov'é l'impostazione per copiare tutte le .dll necessarie nella cartella dell'exe?
Fai le cose di fretta eh
Comunque, io copio tutte le .dll necessarie a mano. D'altra parte va fatto una volta sola, non mi sembra un enorme problema.
Tommaso Checchi
< devlog | twitter | Dojo, a C++ game framework >
(Questo messaggio è stato modificato l'ultima volta il: 27-02-2012 12:18 da _tommo_.)
|
|
| 27-02-2012 12:17 |
|
mude
Arrested Development
Messaggi: 7,140
Registrato: Nov 2008
Offline
|
#15
RE: Ho fatto casino con il Linker
(27-02-2012 12:12)enigma ha scritto: (27-02-2012 11:57)mude ha scritto: ora lascio così ricontrollo dopo cioé fra qualche settimana, comunque dov'é l'impostazione per copiare tutte le .dll necessarie nella cartella dell'exe?
Puoi aggiungere un evento Post-Build (Configuration Properties (del progetto) -> Build Events -> Post-Build Event) e metti, ad esempio:
Codice:
copy /Y "$(OGRE_HOME)bin\$(Configuration)\*.dll" "$(OutDir)"
Non é passata qualche settimana ma qualche mese
Insomma, uso quello? perché così mi copierebbe tutte le dll di ogre, ma magari saarebbe meglio copiare solo quelle necessarie...
cmq quel comando non fa
.: DevLog | Twitter Pinaster Games | Twitter Personale :.
Beta
(Questo messaggio è stato modificato l'ultima volta il: 14-09-2012 15:07 da mude.)
|
|
| 14-09-2012 14:47 |
|