ndk-build编译libressl
时间: 2023-02-21 09:17:18 浏览: 106
如果要使用 NDK-build 编译 libressl,首先需要下载 libressl 源码并将其解压缩到 Android 项目中。然后,在项目根目录中创建一个 jni 目录,并在其中创建 Android.mk 文件。在 Android.mk 文件中,您需要配置编译选项,如编译器和链接器选项。最后,在终端中运行 ndk-build 命令来编译 libressl。
相关问题
ndk-build编译出来的库如何看符号表
在使用 `ndk-build` 命令编译 Android NDK 代码时,可以通过设置 `APP_ABI` 参数来指定生成的目标平台架构,比如 `armeabi-v7a`、`arm64-v8a`、`x86`、`x86_64` 等。生成的库文件默认会被放置在 `libs/` 目录下,其中包括 `.a` 静态库和 `.so` 动态库两种类型。
你可以通过以下命令来查看库文件的符号表信息:
```bash
# 查看静态库的符号表信息
$ ${NDK_HOME}/toolchains/${TOOLCHAIN}/prebuilt/${OS}/bin/${TARGET}-nm -g libs/${APP_ABI}/lib<your_library>.a
# 查看动态库的符号表信息
$ ${NDK_HOME}/toolchains/${TOOLCHAIN}/prebuilt/${OS}/bin/${TARGET}-objdump -T libs/${APP_ABI}/lib<your_library>.so
```
其中 `${NDK_HOME}` 表示 Android NDK 的根目录,`${TOOLCHAIN}` 表示编译工具链名称,`${OS}` 表示编译工具链所在操作系统名称,`${TARGET}` 表示编译工具链的目标平台名称,`<your_library>` 表示你要查看符号表的库文件名称。
在输出的符号表信息中,你可以看到库文件中定义的函数和变量名称以及它们的地址、类型等信息。需要注意的是,如果库文件进行了符号表剥离操作,那么你将无法看到函数和变量名称,只能看到它们的地址和类型信息。
ndk-build : 无法将“ndk-build”项识别为 cmdlet、函数、脚本文件或可运行程序的名称
这个问题通常是由于系统无法找到ndk-build命令导致的。解决方法是将ndk-build的完整路径添加到系统环境变量中。以下是解决方法的步骤:
1.找到你的ndk-build文件的完整路径,例如D:\android\android-ndk-r9d\ndk-build。
2.打开控制面板,选择“系统和安全”,然后选择“系统”。
3.在左侧面板中,选择“高级系统设置”。
4.在“高级”选项卡下,选择“环境变量”。
5.在“系统变量”下,找到“Path”变量,并双击它。
6.在“编辑环境变量”窗口中,选择“新建”,并将ndk-build的完整路径添加到新行中。
7.单击“确定”关闭所有窗口,并重新启动你的命令提示符或终端。
现在,你应该能够在命令提示符或终端中使用ndk-build命令了。
阅读全文