Foro de Java y C++ de Chuidiang

Este foro se mueve a Foro de Java y C++

Foro de Java y C++ de Chuidiang
Fallo al crear dll con JNI
* E-mail:
* Password:
Registrarse Presentación Miembros Imágenes
¿Has olvidado tu Password?

Lista de mensajes
Autor Mensaje
Agua Clara
 
Mensajes: 2
Registrado: Marzo/2008
Estado: Off-line
Grupo: Nuevo usuario
 
 
  Fallo al crear dll con JNI 02/Febrero/2009 - 15:59

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

Usuarios activos
19 usuarios activos: 0 miembros y 19 huespedes en el foro.
 Reglas de mensaje
puedes escribir nuevos temas
puedes responder a los temas
puedes adjuntar archivos
no puedes editar tus mensajes
Contactar con el Administrador del foro.

La utilización del servicio vendrá condicionada por la previa aceptación de las Condiciones Generales de Uso del Servicio.



Foro gratis creado en ForosWebGratis.com. Crea tu propio foro aquí.