好像win下只能调用dll,既然你是用c/c++开发的库,那就应该尽可能的使用跨平台的api,win下发布为dll,linux下发布为so。就像汽车靠轮子走,轮船靠螺旋桨走是一个道理,虽然都是发动机带动。so是linux下编译的库文件而dll是win平台的。

dll和so分别是windows和linux下定义的代码库的标准,文件的格式是windows和linux自己定义的,肯定是不兼容的,因此无法实现一个版本多个平台通吃的。

可以去看一些跨平台的解决方案,例如Eclipse中的插件,需要调用dll/so,它会同时内置两种文件dll/so,然后程序运行的时候,通过获取os.name去判断是windows还是linux,然后通过System.loadLibrary方法去加载对应的版本。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐