18
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:

Compilación de VTK5.6.1 en Ubuntu 11.04 Requerimientossgpwe.izt.uam.mx/files/users/uami/jrja/compilaVTK.pdf · Compilación de VTK5.6.1 en Ubuntu 11.04 Requerimientos ... y motif-clients,

Embed Size (px)

Citation preview

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 = the full path to the Java runtime JAVA_COMPILE = the full path to the Java compiler JAVA_ARCHIVE = 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 = the path to the jawt library JAVA_JVM_LIB_PATH = the path to the jvm library JAVA_INCLUDE_PATH = the include path to jni.h JAVA_INCLUDE_PATH2 = the include path to jni_md.h JAVA_AWT_INCLUDE_PATH = the include 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: