1
Creación de DLL para NetBeans con GCC P. Aluisa, sa, J. Guar nizo, B. Vallej llejo, o, H. Yuqu ile ilema, Escuela Politécnica del Ejército
Resumen:
Este artículo describe el proceso más adecuado para la creación de una librería dinámica (.dll) para NetBeans, en aplicaciones con JNI a través del compilador GCC.
Wind Window owss. paquetes incl ncluidos en MinGW: Los pa
Palabras clave: y y y y
NetBeans J NI GCC Compilad Compilador or
bi binutils ils - ensam ensam bl blador, ador, enl enlazador, azador, ...
y
I.
INTRODUCCIÓN tema de investig nvestigac ació ión n habl ablar emos mos so br br e la En este tem gener ener ació ación n de la li br br ería ría dinámi námica ca (DLL) usando sando el compilad ompilador or GCC. Al princ principio ipio se da una br br eve eve def inición ión so br br e lo que es un mét método nati nativo. El compilad ompilador or GCC viene incl ncluido en el MinGW, por lo que tam tam bié bién n se dar dar á una br br eve eve descrip descripcción ión so br br e este progr ama y poste posteriorm riormente ente habl ablar emos mos so br br e el compilad ompilador or GCC GCC p peero no so br br e todas sus utilidades ilidades ya centr ar emos mos en la gener ener ació ación n de DLL´s. que solo nos centr II.
MinGW olecció ión n de li b li br r e acceso acceso y li b li br r emente distri stri b bui bl ble de Es una colecc Wind Window owss de ar chivos es pec pecííf icos de cabecer cabecer a y bi bi blio bliotecas tecas de impor tació tación n com bi binado nad os con conjunto ntos de herr amientas mientas G NU permiten rmiten la prod producció cción n de progr amas nati nativos de que pe
DESARROLLO DEL ARTÍCULO ARTÍCULO
étodos Nativos
y
ión - Los encabezado encabezados y MinGW-tiempo de ejecución
y
las b as bii blio bliotecas tecas p paar a la bi bi blio blioteca teca de C w32a w32a pi - Wind Window owss los los ar chivos de cabecer cabecer a de la bi blio bliotecas tecas API y bi
y
gcc-cor e - compilad ompilador or de de C
y
gcc-g + + - compilad ompilador or de de C + +
y
gcc-o bjc - O bjeti bjetivo compilad ompilador or de de C
y
gcc-G NU For tr an an - compilad ompilador or For tr an an 90/95 gcc- java - compilad ompilador or de de Java gcc-ada - compilad ompilador or de de Ada
y y
nativas de Wind Window owss constr nstr uir MinGW-gdb - nati de pur ador ador de de G NU min mingw32-make - nati nativas de Wind Window owss constr nstr ucció cción n
y
y
M
plataf orma orma Java II incorpor ncorpor a la inter nter faz faz de progr amació ación n La plataf Java Nati Native Inter Inter face face (J NI), pa par a pe permit rmitir que se puedan escri escri b bir ir progr amas en otros ros leng enguajes disti stinto ntos a Java y
de G NU make ils - Utili Utilidades dades Varios rios MinGW-utils
y
mantener antener lla por tabili tabilidad dad entr entr e todas las pl as plataf ataf ormas ormas..
Instalación de MinGW
Biblioteca de Enlace Dinámico (.dll) érmino con el que se r ef ef ier e a los los ar chivos con código Es el términ ejecutabl table que se carg cargan an bajo bajo dem demanda de un progr ama por pa par te te del del sistem stema ope oper ati ativo. Esta denomi denominac nació ión n es excl exclusiva a los los sistem stemas ope oper ati ativos Wind Window owss siendo endo ".dll" la extensió extensión n con la que se identi dentif ican esto estos f icheros ros, aunque el conce pt pto
tt p: p://www.mi www.min ngw.org y seg seguir los los pas paso os que se dice ahí. htt sterior a la instal nstalació ación n se debe copia opiar las li b li br r erías rías jni. jni.h y Posterior jni_m jni_md d.h en donde se encuentr entr e instal nstalado ado el MinGW, es pec camente en la carp carpeta eta incl nclude del del mis sto ser ser vir á pecííf icam mismo. Esto pa par a pode poder r utiliza ilizar r GCC p GCC paar a gener ener ar l r las DLL´s.
exi existe en pr ácti ácticam camente todos los los sistem stemas ope oper ati ativos mode moder r nos.
Herramientas Necesarias Java JDK , NetBeans IDE, MinGW 5.1.6 (Incl Incluye compilad ompilador or GCC), No Note pad++ pad++ (edi editor de or de texto texto).
br e So br
la instal nstalació ación n se debe descarg descargaar el softw ftwar e de la pá página gina
Compilador GCC GCC es un compilad ompilador or integr ntegr ado ado del del proyecto ecto G NU pa par a C, C++, ++, O bjecti bjective C y For tr an. an. Es ca paz paz de r eci eci bir bir un progr ama f uente en cualquier a de esto estos leng enguajes y gener ener ar un progr ama ejecutabl table bi binario nario en el leng enguaje de la máquina donde ha de corr er. igla GCC sign ignif ica "G NU Compile Compiler Collect Collectio ion n". La sigla riginalm lmente ente sign ignif icaba "G NU C Compile Compiler "; davía se usa Origina "; todaví GCC pa par a desig designa nar r una compilac ompilació ión n en C. G++ r ef ef ier e a una compilac ompilació ión n en C++. ++.
2
tabla 1 muestr estr a los los difer fer entes entes tipos ipos de ar chivo que compila ompila La tabl GCC siendo endo el .c o .c pp y el .h los los usado sados pa par a gener ener ar las nter esan esan pa par a ejecutar tar progr progr amas en leng enguaje DLL´s que nos inter
3.
implementació entación n del del o los los mét métodos Progr amar en C la imple nati nativos en cualquier edi editor de or de texto texto ( No Note pad++ pad++).
java con mét métodos nati nativos en NetBeans en NetBeans.. TABLA I TIPOS DE AR CHIVO QUE COMPILA GCC
.c .c .cc .c pp .c++ .c p .cxx .m
f uente en C f uente en C++; se r ecomi ecomienda enda .c pp f uente en O bjecti bjective-C
.i .ii .s .o .h
C pr e procesad procesado o C++ pr ++ pr e procesd procesdo o f uente en leng enguaje ensam ensam bl blador ador código o bjeto bjeto ar chivo pa par a pr e procesad procesador or encabezados), no suele (encabezado f ig igur ar en la línea línea de comand omando o de gcc
Creación de DLL´s los mét métodos nati nativos 1. Def inir una clase Java con los Nati Nativo. java java (clase con mét métodos nati nativos)
Compilar el código C y gener ener ar una DLL. Par a eso eso 4. Compila abrimo abrimoss una ventana de comand omando os y nos u bi bicamo camoss en C:\, donde se guar do nuestro estro ar chivo de cabecer cabecer a (.h). y
se desea o btener btener el ar chivo o bjeto bjeto ( progr ama.o) y el dll el código a escri escri b bir ir se se es el siguiente: ente:
Si
g cc cc
±c pro g ra rama.o pro g ra rama.c g cc cc -shar ed ed ±W l, l, -ki ll ll -o o peraci ones .d ll ll pro g ra rama.o y
2.
ener ar el ar chivo de cabecer cabecer a .h, en nuestro estro caso caso Gener ilizar r emos mos el J NIStu bMaker aker de Netbeans pa par a la utiliza gener ener ació ación n del del mis mismo.
Si
solo se desea o btener btener eel dll ento entonces el código ser ser á:
g cc cc
-shar ed ed ±W l, l, -ki ll ll ± o o peraci ones .d ll ll pro g ra rama.o
tam bié bién n O tam g cc cc
-shar ed ed ±W l, l,-add-stdc all -al i i as ± o o peraci ones .d ll ll pro g ra rama.o
Cualquier a de estas dos accio acciones nes gener ener ar á el ar chivo ope oper acio aciones nes..dll. ener amos mos una clase Main en el pa paquete de Java en 5. Gener Netbeans pa par a pro bar bar nuestro estross mét métodos, r ecor ecor dando dando que se debe copia opiar la li br br ería ría DLL en el lugar donde se guar dó el proyecto. ecto.
3
6.
esultado tado R es nació en Quito, E cuador, ador, el 4 de ma yo de Henry Alfonso Yuquilema Andino nació 1989. Se gr ad aduó como bac omo bachille ill er en Físico Matem atemáti ático en el Insti Instituto Nacio Naciona nall ejía, u bi bicado cado en la mis misma ciudad de nacimi nacimient ento. o. Actualmente lmente estudia Ing. Ing. Mejí Electró ectrón nica en Automat omatiizació zación n y Cont Co ntrol. rol.
III. y
y
y
CONCLUSIONES
primer lugar es necesario necesa rio saber saber en qué plataf plataf orma orma En prime vamo vamoss a tr abajar, abajar, ya que el compilad ompilador or GCC f ue cr eado eado camente p ente paar a G NU, NU, por lo por lo tanto tanto es pr es pr eci eciso descarg descargaar l r la únicam ver ver sión ión pa par a Wind Window owss. ener ació ación n de dll pa par a Java debemo debemoss incl ncluir las Par a la gener bi bi blio bliotecas tecas jn jni. i.h y jni_m jni_md d.h en las b as bii blio bliotecas tecas de GCC. ación n se r eali ealiza za en C, C++; leng enguajes ya La progr amació conocidos y la compilac ompilació ión n en GCC es fácil fácil de r eali ealiza zar, r, colocand olocando o este compilad ompilador or en una muy buena alter ter nati nativa pa par a le gener ener ació ación n de dll.
Books
[1]
(Libros): FROUFE A gustí stín (2000). J AVA2: Manual de u suario y tutoria orial. México: AlfaO mega Gr u po Editor. Pa g:499-506
echnical Reports T echnical [2] [3] [4] [5] [6]
(Informes técnicos):
2003. G NU Binar nar y Utili Utilitties. es. www.de delori loriee.com/gnu/ docs/ b biinutil ilss/ bi binutil ilss _ 15 ml.. htt p:// www. 15 .html xtr aído el día 13 de abril abril de 2010 . Extr 2009 . MinGW. htt tt p: p:// www.mi www.min ngw.org/ wi wik k i/MinGWi GWik k i. Extr xtr aído el día 13 de abril abril del del 2010 . DZ N AJDLEDER Pablo, ablo, 2009 . Acceso cceso a Métodos Nati Nativos (J NI vs. vs. J NA). htt tt p: p://h ol olaa mu nd ndo o java java.. blog blogss po pott.com/. E xtr xtr aído el 11 de abril abril de 2010 . GO NZÁLEZ Victor. ctor. El compilad ompil ador or GCC. GCC. iiee.f ing. g.ed edu.uy/~ va vago gonba nbar r /gcc-make/ gcc cc..htm. Extr xtr aído el día htt p://ii 10 de abril abril de 2010 . 2010 . Bi blio blioteca teca de Enlace D inámi námicco. htt p://es es.wi .wik k iped ipediia.org/ wi wik k i/Bi b blio lioteca teca _ _ de de _ enl enlace ace _ _ din% n%C3 C3% %A1mi co. Extr xtr aído el día 13 de abril abril de 2010 .
nero de 1990. R eali ealizzó sus Paúl Sebastián Aluisa nace en Qu ito, el 29 de E nero estudios ios secundario ndarioss en el Cole Colegio Técni cnico Ex pe perimenta rimentall Salesi esiano ano ³D on Bosco´, sco´, o bteni bteniendo endo el título de Bachille iller T écni cnico en E lectri ectriccidad y ectrón nica. ca. Actualmente lmente r eali ealiza za su s estudios ios en la Escuela Polit olitécni cnica del del Electró E jér jér cito, con el propós propósito de o btener btener una Ing Ingeni eniería ría Electró ectrón nica en Automat omatiizació zación n y Cont Control. rol.
José Guarnizo Poma nació nació en Lo ja, ja, Ecuador, ador, el 8 de se pt ptiem br br e de 1990. Se gr ad adu ó de bachille iller con es pec peciialidad lidad de Físico- Matem ate máti ático en el Insti Instituto Tecnológi ecnológicco Su pe perior ³Dani aniel Álvar var ez ez Bur neo´ neo´ el cual r adi adica en la mis misma ciudad en el año año 2007 . Actualmente lmente estudia Ing Ingeni eniería ría Electró ectrón nica en omatiizació zación n y Cont Control rol en la Escu ela Polit olitécni cnica del del E jér j ér cito en Sangol angolqui, Automat Ecuador ador . nació en R io io bam bam ba, ba, Ecuador, ador, el 13 de Bernardo Javier Vallejo Mancero nació julio de 1989.Se gr ad adu ó como bachille atemáti ática en el cole iller en Física Matem olegio perimenta rimentall Montufar, far, u bi bicado cado en la ciudad de Quito, Actualmente lmente estu dia Ex pe Ing. Ing. Electró ectrón nica en Automat omatiizació zación n y Cont Co ntrol rol en la Escuela Polit olitécni cnica del del E jer jer cito.