Programación General > Java

 Fallo JNI

(1/1)

agua_clara:
Hola a todos, quiero hacer una dll para poder trabajar con un código que tengo en C desde Java. Esta es la primera vez que trabajo con JNI y debo de estar haciendo algo mal. He buscado información en diferentes foros y manuales pero no he encontrado la solución.

Me da el fallo: undefined reference to `help'.

Los comandos que utilizo para crear la dll son los siguientes:

--- Citar ---    > gcc -c miPrograma.c -o miPrograma.o -I"C:/Soft/Sun/SDK/jdk/include" -I"C:/Soft/Sun/SDK/jdk/include/win32"

    > gcc -lm -Wall -D_JNI_IMPLEMENTATION_ -Wl,--kill-at -I"C:SoftSunSDKjdkinclude" -I"C:SoftSunSDKjdkincludewin32" -L"C:lib" -shared assrules.c -o assrules.dll
--- Fin de la cita ---

En este último comando me da el fallo siguiente:

--- Citar ---    C:DOCUME~1UserCONFIG~1Temp/cceDovOl.o:miPrograma.c:(.text+0x13): undefined ref
erence to `help'
    collect2: ld returned 1 exit status
--- Fin de la cita ---


El problema me pasa cuando intento llamar a la función help() que hay en un fichero .c que tengo.

Os indico el código que tengo y los comandos que uso para crear la dll:

Código Java:

--- Código: Text ---class miPrograma{     private native void print();          public static void main(String[] args)     {         new miPrograma().print();     }     static {         System.loadLibrary("miPrograma");     }} 

Código miPrograma.c:

--- Código: Text ---#include <jni.h>#include <stdio.h>#include "miPrograma.h"#include "miLibreria.h"   JNIEXPORT void JNICALL  Java_miPrograma_print(JNIEnv *env, jobject obj) {     printf("Hello World!n");     help();    /* Esta función está definida en el ficehro miLibreria.c */     return; } 

Código miLibreria.c:

--- Código: Text ---#include <stdio.h> static void help (void){     printf("Helppp n");} 

Código miLibreria.h:

--- Código: Text ---extern void help (void); 

Os agradeceria que me pudierais ayudar.

Leo

Navegación

[0] Índice de Mensajes

Ir a la versión completa