Compilazione incrociata con MinGW


Compilazione incrociata di Rocrail su piattaforma Ubuntu per piattaforma Windows

La compilazione incrociata per Windows su un sistema Ubuntu potrebbe risultare una sfida abbastanza ostica. Accertatevi di essere in grado di compilare Rocrail per Ubuntu prima di avventurarvi nella compilazione incrociata per Windows.

Dovrete installare una discreta quantità di strumenti e pacchetti prima di poter iniziare la vera e propria compilazione. Prima di iniziare, accertatevi che questi pacchetti siano installati e che funzionino correttamente.

In questa lista sono riportati gli importanti strumenti che dovrete aver installato:

  • MinGW32, compilatore per creare eseguibili Windows con Ubuntu
  • wxAll sources per wxWidgets, Versione completa del codice sorgente di wxWidgets comprendente la versione per Windows
  • Wine, programma per l'esecuzione di programmi Windows su sistemi Linux
  • Inno Setup, programma con licenza libera per la creazione di file di installazione per Windows

Seguite scrupolosamente e sequenzialmente i prossimi passaggi per creare il file eseguibile per Windows di Rocrail.

Compilatore MinGw

Procuratevi il compilatore per la compilazione incrociata con il comando:

sudo apt-get install mingw32

Librerie wxWidgets

Scaricate da http://www.wxwidgets.org i sorgenti di wxall e scompattateli nella vostra cartella Home. Aprite un terminale e spostatevi nella cartella vxWidgets-2.8.*

cd wxWidgets-2.8.x

Eseguite la configurazione con il seguente comando:

./configure --prefix=/usr/i586-mingw32msvc --host=i586-mingw32msvc --target=i586-mingw32msvc --with-msw --enable-unicode --enable-mslu --disable-shared

Se desiderate configurare la libreria per Windows 9x (Ansi), omettete i flag ”–enable-unicode –enable-mslu”.

Eseguite il comando make per le librerie wx:

make

Installate le librerie wx:

sudo make install

Compilazione di Rocrail

Compilate i moduli di Rocrail

cd Rocrail
cd rocs
make clean
make TOOLPREFIX=i586-mingw32msvc- PLATFORM=WIN32 all
cd ../rocint
make clean
make TOOLPREFIX=i586-mingw32msvc- PLATFORM=WIN32 all
cd ../rocrail
make clean
make TOOLPREFIX=i586-mingw32msvc- PLATFORM=WIN32 all
cd ../roclcdr
make clean
make TOOLPREFIX=i586-mingw32msvc- PLATFORM=WIN32 all
cd ../rocdigs
make clean
make TOOLPREFIX=i586-mingw32msvc- PLATFORM=WIN32 all

Compilate rocgui scegliendo tra la versione Unicode e la versione ANSI

  • Compilazione in versione Unicode (utilizzando il makefile comune):
cd ../rocgui
make clean
make TOOLPREFIX=i586-mingw32msvc- LIBSUFFIX=-i586-mingw32msvc PLATFORM=WIN32 MINGWINSTALL=/usr/i586-mingw32msvc all
  • Compilazione in versione ANSI (utillizando il makefile comune):
cd ../rocgui
make clean
make all TOOLPREFIX=i586-mingw32msvc- LIBSUFFIX=-i586-mingw32msvc PLATFORM=WIN32 MINGWINSTALL=/usr/i586-mingw32msvc LIBRARY=ansi

#note: The 'i586-mingw32msvc' naming must be justified to fit your installation of mingw.

Compilate tutti i moduli della cartella /Rocrail utilizzando il makefile principale

make all PLATFORM=WIN32 TOOLPREFIX=i586-mingw32msvc- LIBSUFFIX=-i586-mingw32msvc MINGWINSTALL=/usr/i586-mingw32msvc

Consultate anche: http://www.wxwidgets.org/wiki/index.php/Cross-Compiling_Under_Linux

Eseguite lo strip dei binari:

cd Rocrail
cd winbin
i586-mingw32msvc-strip *.dll
i586-mingw32msvc-strip *.exe

Copiate la dll mingw runtime ed estraete il file /usr/share/doc/mingw32-runtime/mingwm10.dll.gz nella cartella winbin:

sudo gunzip /usr/share/doc/mingw32-runtime/mingwm10.dll.gz
cp /usr/share/doc/mingw32-runtime/mingwm10.dll .

Creazione del file per l'installazione

Scaricate e installate wine direttamente dal sito ufficiale Wine HQ:

Wine Headquarters

Scaricate dal sito ufficiale e installate il file .exe di Inno Setup utilizzando wine:

Sito web di Inno Setup

Create il pacchetto cambiando la cartella di rocrail e eseguendo Inno Setup con file rocrail.iss:

cd ../rocrail/package
wine "c:\\Program Files\\Inno Setup 5\\ISCC.exe" rocrail.iss

Personal Tools