|
Agua Clara
|
| |
| Mensajes: 2 |
| Registrado: Marzo/2008 |
| Estado:
Off-line |
| Grupo: Nuevo usuario |
| |
|
|
| |
|
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: > 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:\Soft\Sun\SDK\jdk\include" -I"C:\Soft\Sun\SDK\jdk\include\win32" -L"C:\lib" -shared assrules.c -o assrules.dll
En este último comando me da el fallo siguiente: C:\DOCUME~1\User\CONFIG~1\Temp/cceDovOl.o:miPrograma.c:(.text+0x13): undefined ref erence to `help' collect2: ld returned 1 exit status
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: class miPrograma { private native void print(); public static void main(String[] args) { new miPrograma().print(); } static { System.loadLibrary("miPrograma"); } }
Código miPrograma.c: #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: #include <stdio.h>
static void help (void) { printf("Helppp \n"); }
Código miLibreria.h: extern void help (void);
Os agradeceria que me pudierais ayudar.
Leo
|
|