android - UnsatisfiedLinkError: dlopen failed: library "libm.so.6" not found - Android Studio 4.0
问题描述
我曾经在我的工作区(如 /data/data/com.example.myapplication)中加载已编译的 Fortran 可执行文件,但这不再可能,因此我将代码放入共享库并使用 loadLibrary()。我正在编译一个简单的 Fortran 函数并将生成的对象文件封装在一个共享对象库中,因为从我读过的所有内容来看,Android Studio 都必须是这样。但是,当我启动模拟器并运行 Android 代码时出现问题,它会搜索所需的关联库,如 lib.so.6、linux-vdso.so.1、libgfortran.so.5、libgcc_s.so.1 、libquadmath.so.0 和 libc.so.6。我在 Android SDK 树中没有看到这些。如果我然后将 -static 标志添加到共享对象库构建中,那么我得到:
“x86_64-linux-gnueabi-ld: crtend.o: 重定位 R_X86_64_32 对 '.ctors' 在制作共享库时不能使用。使用 -fPIC 重新编译”。
GCC 编译器的整个重新编译听起来不是最好的选择。有没有办法解决?
感谢您的任何想法,史蒂夫
解决方案
推荐阅读
- python - 如何以 ddmmyyyy 格式将日期解释为 3 12 而不是 31 2
- r - R:了解两个图之间的差异
- ffmpeg - FFMPEG:如何将元数据从视频文件复制到 AVI 视频文件?
- nsis - Files for both applications are installed in both destination folders
- swift - ARKit - 使用纬度和经度放置对象
- python - 在数据集中的多个日期上求解相同的优化函数
- css - Vuetify v-data-table 弹出选中的行
- amazon-web-services - EKS ALB 无法自动发现子网
- ios - WebView 不能在 iOS 中使用颤振但在 Android 中工作
- php - 使用 PHP HTML 中的按钮删除 MySQL 数据库