Download Compilación de VTK5.6.1 con soporte para Java

Document related concepts
no text concepts found
Transcript
Compilación de VTK5.6.1 en Ubuntu 11.04
Requerimientos
•
•
Se deberá haber bajado el código fuente de VTK
(http://www.vtk.org/VTK/resources/software.html).
Tener instalado el CMake. Se puede hacer desde el Ubuntu Software Center. Aquí se muestran
ventanas del cmake-qt-gui.
Directorios de código fuente y de compilación
•
•
El codigo fuente esta en /home/jr/Fuentes/vtkVersionX/VTK561 y los datos en
VTKData561.
El directorio de compilación lo puse en /homejr/Public/compilaVTK561.
Proceso de configurar y generar
Correr CMake y establecer el directorio donde se encuentra el código fuente y el directorio donde se
construiran los archivos binarios:
Dar click en el botón Configure y aparece el siguiente diálogo:
Dar click en el botón Finish.
Se inicia el proceso de configuración del proceso de compilación, que en este caso particular, produjó
el siguiente error: Error in configuration process, project files may be invalid.
El mensaje que aparece en la ventana de CMake es:
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
OPENGL_INCLUDE_DIR (ADVANCED)
OPENGL_gl_LIBRARY (ADVANCED)
El mensaje anterior, significa que no se tiene instalado el software de openGL necesario.
Instalar openGL
Para instalar openGL, corra System → Administration → Synaptic Package Manager, busque el
paquete mesa­common­dev y márquelo para instalación; al hacerlo, Synaptic informa que también
se requieren libdrm­dev y libkms1.
Marque también para instalación el paquete freeglut3­dev, y automáticamente se marcan además:
freeglut3, libgl1­mesa­dev, libglu1­mesa­dev, libxext­dev y x11proto­
xext­dev.
Finalmente, de click en el botón Apply para que Synaptic instale los paquetes seleccionados.
Continua el proceso de configurar y generar
Regresando a la ventana del CMake, dar click en el botón Configure. Después de un corto tiempo,
CMake termina el proceso de configuración sin marcar error, y se habilita el botón Generate; como se
muestra en la siguiente imagen:
Una vez que se tiene la configuración del VTK, podemos hacer algunos ajustes. Por ejemplo, habilitar
la construcción de los ejemplos (generar ejecutables), seleccionando la opción BUILD_EXAMPLES.
Si tenemos los datos de VTK y no se encontraron en el proceso de configuración, podemos indicar al
CMake la ruta donde se encuentran, con la opción VTK_DATA_ROOT. Al hacer algun cambio, se
deshabilita el botón Generate, lo cual quiere decir que debemos repetir el proceso de configuración
todas las veces que sea necesario, hasta tener terminada esta parte.
Al seleccionar la opción BUILD_EXAMPLES, avisa que no encuentra Motif y que no se construiran
los ejemplos de Motif. Podemos continuar, ya que ésto solo tendrá el efecto de que no se generaran los
ejemplos que requieran motif.
Nota: Si desea instalar Motif, corra el Synaptic Package Manager y seleccione los siguientes paquetes
de motif: libmotif-dev (marca dependencia con libmotif4) y motif-clients, avisa de las dependencias
que se tienen, se aceptan y se procede con la instalación.
Para ejecutar el paso de generar el makefile, dar click en el botón Generate y si se lleva a cabo sin
problemas, salir del CMake.
Compilación del VTK
Abrir una terminal y cambiarse al directorio de compilación del VTK, en nuestro caso:
$ cd Public/compilaVTK561/
y dar el comando: jr@izel:~/Public/compilaVTK561$ make
Se inicia el proceso de compilación, mostrando el porcentaje realizado. Compiló al 100% generando
algunos ejecutables de los ejemplos, excepto los de Motif.
Agregar soporte para Tcl/Tk en VTK
Verificar instalación de Tcl
Con el System → Administration → Synaptic Package Manager desinstale y borre totalmente los
paquetes tcl y tcl8.4. Y procedí a instalar los paquetes: tcl8.5­dev, tk8.5­dev y tcl8.5­
kwwidgets con sus dependencias de otros paquetes (las marcadas por Synaptic).
Proceso de configurar y generar VTK con soporte para Tcl
Correr nuevamente el CMake y agregar el soporte para Tcl en VTK, seleccionando la opción
VTK_WRAP_TCL, como se muestra a continuación:
Volver a configurar, dando click en el botón Configure. Termina la configuración, pero no habilita el
botón Generate, por lo que se necesita dar click nuevamente en Configure.
Y ahora si, al terminar, se habilita el botón Generate y le damos clik. Salimos del CMake.
Compilación de VTK con Tcl
En una sessión de terminal, estando parados en el directorio de compilación, ejecutamos el comando:
jr@izel:~/Public/compilaVTK561$ make
y esperamos el resultado. Compiló al 100% y en el directorio bin dentro del directorio de compilación
(compilaVTK561) queda el ejecutable vtk, que es el que usaremos para correr los programas
codificados en Tcl.
Para probar la compilación del VTK con soporte para Tcl, podemos correr uno de los ejemplos que
vienen con el código fuente. Para ésto, abrimos una terminal (Applications → Accesories → Terminal)
y damos el comando:
jr@izel:~/Public$ compilaVTK561/bin/vtk VTK/Examples/Tutorial/Step1/Tcl/Cone.tcl
y debe aparecer una ventana como la siguiente:
Compilar VTK con soporte para Java
Para compilar VTK con soporte para Java se asume que ya se tiene instalado el compilador de Java. La
versión de Java que usaremos es la de Sun 1.6.0_22, instalada siguiendo las instrucciones de
http://www.guia-ubuntu.org/index.php?title=Java
Proceso de configurar y generar VTK con soporte para Java
Correr nuevamente el CMake y seleccionar la opción VTK_WRAP_JAVA:
Inicie el proceso de configuración, dando click en el botón Configure. Repetir el paso de configuración
hasta que se habilite el botón de Generate.
En la documentación de CMake (http://www.cmake.org/cmake/help/cmake2.4docs.html) encontramos
los comandos que son relevantes para incorporar el soporte de Java en VTK:
• FindJava: Find Java
This module finds if Java is installed and determines where the include files and libraries are. This code
sets the following variables:
JAVA_RUNTIME
JAVA_COMPILE
JAVA_ARCHIVE
= the full path to the Java runtime
= the full path to the Java compiler
= the full path to the Java archiver
• FindJNI: Find JNI java libraries.
This module finds if Java is installed and determines where the include files and libraries are. It also
determines what the name of the library is. This code sets the following variables:
JAVA_AWT_LIB_PATH
JAVA_JVM_LIB_PATH
JAVA_INCLUDE_PATH
JAVA_INCLUDE_PATH2
JAVA_AWT_INCLUDE_PATH
=
=
=
=
=
the
the
the
the
the
path to
path to
include
include
include
the jawt library
the jvm library
path to jni.h
path to jni_md.h
path to jawt.h
Para verificar como quedaron los comandos que tienen que ver con Java en el paso de configuración,
seleccionamos la opción Advanced en la ventana del CMake y buscamos los comandos:
Observamos que todos los comandos se detectarón automáticamente, y se puede proceder con el paso
de generación. Sin embargo, en nuestro caso particular, deseamos utilizar el Java de Sun, no el del
OpenJDK y procedemos a modificar los comandos, para que queden de la siguiente manera:
La ventana anterior muestra el resultado con los pasos de configuración y generación terminados. Salir
del CMake y correr el proceso de compilación.
Compilación de VTK con Java
En una sessión de terminal, estando parados en el directorio de compilación, ejecutamos el comando:
jr@izel:~/Public/compilaVTK561$ make
y esperamos el resultado. Compiló al 100%
El resultado de la compilación esta en el directorio bin dentro del directorio compilaVTK561. El
directorio bin tiene las bibliotecas que requiere un programa en Java.
Prueba de VTK con Java
Para probar el soporte para Java de VTK usando NetBeans, creamos un proyecto nuevo, como se
muestra a continuación:
Elegimos un Java Application y damos click en el botón Next. En la siguiente ventana damos el
nombre del proyecto:TutorialJava
Note que se han quitado las verificaciones en las casillas Create Main Class y Set as Main Project.
Damos click en el botón Finish. Y nos aparece la siguiente ventana, con el proyecto que acabamos de
crear:
El proyecto esta vacio, por lo que, lo más fácil es copiar en el Source Packages el archivo Cone.java,
que se encuentra en el directorio del código fuente del VTK, especificamente en
Examples/Tutorial/Step1/Java/. Una vez copiado, ya lo podemos ver en el proyecto de
NetBeans, y lo podemos abrir, como se muestra a continuación:
Inmediatamente, NetBeans marca errores que se deben resolver antes de compilar. El primer error se
encuentra en la línea 9 y lo que dice NetBeans es que el paquete vtk no existe. Para corregir este error,
damos click derecho sobre Libraries en el proyecto, elegimos Add JAR/Folder … y navegamos hasta el
directorio bin de nuestra compilación, dónde se encuentra el archivo vtk.jar. Lo seleccionamos y
damos click en el botón OK.
Después de elegir el archivo vtk.jar, desaparecen todos los errores en el archivo Cone.java y podemos
proceder a compilarlo, presionando la tecla F9. La compilación se realiza sin errores, y podemos
proceder a correr el programa, para hacerlo, dar click en el área de edición del archivo Cone.java; y a
continuación presione la combinación de teclas Shift+F6. NetBeans intenta correr el programa, sin
embargo, se produce una excepción:
Exception in thread "main" java.lang.UnsatisfiedLinkError: no vtkCommonJava in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1734)
at java.lang.Runtime.loadLibrary0(Runtime.java:823)
at java.lang.System.loadLibrary(System.java:1028)
at Cone.<clinit>(Cone.java:17)
Could not find the main class: Cone. Program will exit.
Java Result: 1
Esta excepción se da porque Java no localiza la biblioteca dinámica vtkCommonJava en sus rutas de
búsqueda. Si la buscamos en el sistema de archivos de la computadora, nos damos cuenta que se
encuentra en el directorio bin del directorio donde compilamos el VTK, en nuestro caso particular, la
ruta donde se encuentra la biblioteca vtkCommonJava es:
/home/jr/Public/compilaVTK561/bin
Para informarle a la maquina virtual de Java el lugar dónde se encuentran las bibliotecas de VTK,
damos click derecho sobre Libraries del proyecto, y en el menú emergente, damos click en Properties y
aparece la siguiente ventana:
en la que previamente hemos seleccionado Run de la sección Categories.
En el campo de texto VM Options (opciones de la máquina virtual), escribimos la ruta donde se
encuentran las bibliotecas de VTK con soporte para Java:
­Djava.library.path=/home/jr/Public/compilaVTK561/bin
Damos click en el botón OK. Intentamos correr nuevamente el programa, seleccionando el archivo
Cone.java en el proyecto, y presionar Shift+F6. Si ya no ocurre ningún error, se debe observar algo
como lo siguiente: