This Time Self-Hosted
dark mode light mode Search

Compilazione paradossale

Quando iniziammo a lavorare ad Hypnos, decidemmo che il supporto a Microsoft Visual C++ poteva benissimo essere ignorato, visto che tanto non avrebbe mai funzionato a dovere senza prima installare STLport e comunque avrebbe creato problemi.
Come ambiente di sviluppo per Windows ci eravamo concentrati su MinGW, già mingw32, che fornisce un layer posix per Windows e un compilatore GCC da usare per compilare applicativi Win32.
I motivi per cui ero propenso a scegliere questo ambiente erano principalmente due: il primo è che usando un solo compilatore, non c’erano granché modifiche da fare per cambiare piattaforma; il secondo ceh esiste un tool chiamato xmingw che permette la crosscompilazione di applicativi per windows sotto linux.
Bene, ieri sera inizio a provare a far andare la crosscompilazione, ma risulta in un fallimento inizialmente: le funzioni asprintf e vasprintf, comodissime perché alloccano da sé il buffer da usare, non esistono sotto Windows. Per risolvere, le scrivo io per l’arch Windows. Fatto questo spero che compili, ma prima abbiamo dovuto sistemare diverse altre cosucce.

Fatto questo, e sapendo che è ben impossibile che compili completamente al momento, decido di passare a fare una piccola prova con mxmlPlus, la libreria che abbiamo deciso di usare per l’accesso ai files xml. Visto che la crosscompilazione ha generato una libreria non funzionante (d’oh!), decido di fare una compilazione statica giusto per test. Sorvolando che la prima compilazione era di 5MB (c’era tutta la libstdc++ linkata statica con le info di debug, l’ho strippato ed è diventato 270KB), ho il file .exe pronto, lo provo con wine e funziona perfettamente. Lo mando al mio co-devel per provarlo sotto windows e non funziona!!!! Prova da dentro la bash di msys (emulazione posix) e funziona.
Il fatto è che NON dovrebbe creare questi problemi.
vabbé finirò probabilmente con il ritornare ad usare anche borland se non si riesce a correggere in qualche modo, solo che sotto Wine Borland non linka, d’oh!

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.