Com instal·lar wxEiffel en GNU/LiNUX

WxEiffel és una interfície per al llenguatge Eiffel per tal d'usar la biblioteca WxWindows. Tant la biblioteca com la interfície són multiplataforma, però a vegades l'instal·lació en un entorn *IX no és tan senzilla com sembla a priori.




1. Requeriments



Per començar necessitarem un compilador, com és lògic, d'Eiffel. Per aquest document s'ha usat SmartEiffel, el compilador GNU d'Eiffel que podeu trobar a http://smarteiffel.loria.fr. Si accediu a la secció Download podreu descarregar-lo. Compilar-lo i posar-lo en funcionament és senzill i està ben documentat.



Aquí usarem el WxGTK per tant és necessari que tingueu instal·lades les GTK 1.2 com a mínim. Si no n'esteu segurs de si ho teniu o no, proveu a mirar si podeu usar l'utilitat gtk-config. Si no és el cas aneu a http://www.gtk.org/



2. Instal·lació WxWindows (WxGTK)



Aneu a http://www.wxwindows.org/ i a la secció Download escolliu UNIX/GTK+ (com veureu hi ha d'altres ports per a entorns UNIX com ara MOTIF o X11, però nosaltres usarem, com ja hem dit, GTK). Ara baixeu-vos el wxGTK-2.4.0.tar.gz (o wxGTK-2.4.0.tar.bz2 si ho preferiu).



Aneu al directori on teniu l'arxiu i

$ tar -zxf wxGTK-2.40.tar.gz
$ cd wxGTK-2.4.0
$ ./configure --with-no-rtti --with-no-exceptions --disable-shared --with-gtk
$ make

Un cop fet això feu un make també als directoris
wxGTK-2.4.0/contrib/src/fl
wxGTK-2.4.0/contrib/src/plot
wxGTK-2.4.0/contrib/src/gizmos




Si consulteu ara el directori lib veureu que hi ha 4 nous arxius (si tot ha anat bé)



libwx_gtk-2.4.a
libwx_gtk_fl-2.4.a
libwx_gtk_plot-2.4.a
libwx_gtk_gizmos-2.4.a




Ara, des de root, moveu tot el directori wxGTK-2.4.0 a /usr/local.



3. Instal·lació wxEiffel



Aneu a http://sourceforge.net/project/showfiles.php?group_id=28837 i baixeu-vos el binaries.zip i el eljlib-06.tar.bz2



Aneu al directori on teniu el eljlib i feu

$ tar -jxf eljlib-06.tar.bz2

I moveu-lo a on creieu convenient (és indifirent, tampoc l'usareu per gaire res u_u), suposarem que el teniu al vostre directori Home (~/)



Ara aneu al vostre directori de treball (on posareu els .e per tal de compilar-los) i feu el següent

$ cp ~/elj-2002/lib/ifs/eiffel/ewxw/ewxw_glue.h .

Amb això copiareu la capçalera de les funcions usades per wxEiffel per tal de que el codi C generat per Eiffel les pugui usar.



Ara creeu també en el vostre directori de treball un arxiu anomenat loadpath.se i afegiu-hi les següent línies:

~/elj-2002/lib/ifs/eiffel/ewxw 
~elj-2002/lib/ifs/eiffel/ewxw/gtk

La primera permetrà al compilador d'Eiffel reconèixer la classe WX_DEFS i la segona la WX_APP.



Ara, però, falten les llibreries perquè podem executar l'aplicació correctament. Tornem a la nostre carpeta de descàrregues i fem:

$ unzip binaries.zip
$ cd bin
$ cp linux/* ~/elj-2002/bin/linux

Entrem en root i fem:

$ cp linux/libwxEiffel-2.4.so /usr/lib
$ cd /usr/lib
$ ln -s libwxEiffel-2.4.so libwxEiffel.so

4. Compilar!



Molt senzill:

$ compile arxiu.e -lwxEiffel

Res més a fer!



5. Programa de prova



A continuació teniu un programa de prova que podeu usar per verificar si ho heu fet tot bé.

class TUTORIAL

inherit
  WX_DEFS

creation
  make

feature {NONE}

  make is
    local
      app: WX_APP
    do
      create app.make(agent initialize)
    end -- make

feature {NONE}

  initialize (a_app: WX_APP): BOOLEAN is
    do
      create frame.make (Void, -1, "Hello Eiffel world", -1, -1, -1, -1, wxDEFAULT_FRAME_STYLE)
      frame.show
      a_app.set_top_window (frame)
      Result := True
    end -- initialize

  frame: WX_FRAME

end -- class TUTORIAL

6. Agraïments



rofi - Per fer-me entendre com funciona el ld i com li agrada que li diguem on són les llibreries.

Cid - Per permetre'm reduir el meu loadpath.se de 53 a 2 línies



7. NOTES FINALS



Si us fixeu no hem usat les wxGTK per res. ¿Llavors perquè serveixen? No ho se, potser algun dia ho descobriré! En tot cas, si voleu compilar vosaltres mateixos la llibreria wxEiffel necessitareu el wxGTK.



Si alguna cosa us falla, proveu d'afegir al 'loadpath.se'

/usr/local/wxGTK-2.4.0
/usr/local/wxGTK-2.4.0/include/wx
~/elj-2002/lib/cmn/eiffel/base/mem/std
~/elj-2002/bin/linux




Com haureu comprovat el compilador d'SmartEiffel és una mica torracollons i ens dona la guitza amb warnings de estil quan compilem projectes que usen la wxEiffel. Per solucionar-ho podeu usar el paràmetre -no_style_warning a l'hora d'usar el 'compile'. Us recomano que en feu un àlias: si useu bash editeu el vostre .bashrc i afegiu-hi:

alias compile="compile -no_style_warning"
alias compile_to_c="compile_to_c -no_style_warning"

Per acabar cal dir que l'última versió que vaig provar del port (06), no gestioanava correctament els events de botons i, segons el propi autor, es tracta d'un bug. L'instal·lació de la llibreria a GTK és, doncs, totalment inútil.

pàgina generada en: 0.458 segons.