Boa tarde,
Estou tentando reproduzir uma versão carnavalesca do Hello World usando JNI encontrado na seguinte página:
http://javafree.uol.com.br/noticia/4553/Tutorial-JNI-em-Linux-com-GCC.html
Ao executar o "whereis java" o SO retorna o seguinte:
/usr/bin/java /etc/java /usr/lib/java /usr/share/java
Entretanto todos esses arquivos são links para o gij do linux e portanto não possuem os subdiretórios include e include/linux especificados no procedimento.
Sabendo que o meu jdk está no diretório /usr/java/jdk1.6.0_16, eu executei o comando gcc especificado no quinto passo do procedimento da seguinte maneira:
gcc -o lib/libCarnival.so -shared -Wl,-soname,libCarnival.so -I/usr/java/jdk1.6.0_16/include -I/usr/java/jdk1.6.0_16/include/linux/ Carnival.c -static -lc
Após executar o comando, o SO me retorna a seguinte mensagem de erro:
/usr/bin/ld: /usr/lib/gcc/x86_64-redhat-linux/3.4.6/crtbeginT.o: relocation R_X86_64_32 against `__deregister_frame_info' can not be used when making a shared object; recompile with -fPIC
/usr/lib/gcc/x86_64-redhat-linux/3.4.6/crtbeginT.o: could not read symbols: Bad value
Alguém aí poderia me ajudar a descobrir o que eu estou fazendo de errado?
Agradeço desde já
DM
