在链接的时候指定入口是可以制造可以运行的.so文件的典型的例子:/lib64/ld-linux-x86-64.so.2/lib64/libc.so.6因为它们都是ELF(Executable and LINKing Format)文件顾名思义就知道这种文件同时兼具可执行于可连接的作用。Windows上我不熟悉,当时考虑到DLL于EXE都是PE文件,链接器那边做好入口理论上是可以执行的。但是如果Windows上有什么泾渭分明的区分就无解了

建议你在linux底下编译so加-g选项,然后gdb java,进去以后可以b c函数名来设置断点,单步调试。或者生成core文件 ,再gdb java core看看崩溃堆栈上下文。推荐第一种方式。