g++编译so

1 生成.o

g++ -fpic -D_REENTRANT -I/usr/lib/jvm/java/include/linux -I/yourpath -I/usr/lib/jvm/java/include -c /yourpath/hellojni.c

 

解释下:-I/usr/lib/jvm/java/include/linux 路径是必须的(害我很长时间,总是编译报错);

-I/yourpath -I/usr/lib/jvm/java/include包含jni.h的,

yourpath是你.h .c 存放的路径

编译后的.o文件在根目录 ./下通过pwd 然后 ls -l可以看到

 

2 生成.so

g++ -shared hellojni.o -o libhellojni.so路径同上

 

编译的时候如果用gcc则会报出错误 ',' ';'等asm 之类的,就用g++吧

 

复杂的就要用make文件了

你可能感兴趣的:(gcc)