如何为android系统添加BUILD_SHARED_LIBRARY
时间: 2023-11-24 11:08:09 浏览: 45
为Android系统添加BUILD_SHARED_LIBRARY,需要按照以下步骤进行操作:
1. 在Android.mk文件中添加BUILD_SHARED_LIBRARY选项,例如:
```
include $(CLEAR_VARS)
LOCAL_MODULE := mylib
LOCAL_SRC_FILES := mylib.cpp
LOCAL_SHARED_LIBRARIES := liblog
include $(BUILD_SHARED_LIBRARY)
```
其中,LOCAL_MODULE指定库的名称,LOCAL_SRC_FILES指定库的源码文件,LOCAL_SHARED_LIBRARIES指定库依赖的其他共享库。
2. 在Android.mk文件所在目录下执行mm命令,编译生成库文件。
3. 在Android系统中使用这个共享库,需要在相关的Android.mk文件中添加对该库的依赖,例如:
```
LOCAL_SHARED_LIBRARIES := mylib
```
这样就可以在Android系统中使用添加的共享库了。
相关问题
Android.mk 除了PREBUILT_SHARED_LIBRARY还有哪些
除了 PREBUILT_SHARED_LIBRARY,Android.mk 文件中还可以使用以下模块指令:
- BUILD_SHARED_LIBRARY:用于编译生成共享库(.so)文件;
- BUILD_STATIC_LIBRARY:用于编译生成静态库(.a)文件;
- BUILD_EXECUTABLE:用于编译生成可执行文件;
- LOCAL_MODULE_TAGS:用于给模块打标签,方便在 Android 系统中选择性加载;
- LOCAL_C_INCLUDES:用于指定 C 语言头文件的搜索路径;
- LOCAL_CFLAGS:用于指定 C 语言编译器的编译选项;
- LOCAL_CPPFLAGS:用于指定 C++ 语言编译器的编译选项;
- LOCAL_STATIC_LIBRARIES:用于指定静态库的依赖关系;
- LOCAL_SHARED_LIBRARIES:用于指定共享库的依赖关系;
- LOCAL_LDLIBS:用于指定链接时需要加入的库文件。
- include $(BUILD_PACKAGE):用于生成 APK 文件。
还有其他一些模块指令,具体可以参考 Android 官方文档。
Android.bp 配置libc++_shared.so
在 Android.bp 文件中,你可以通过 `cc_library` 模块来配置 `libc++_shared.so` 的使用。具体步骤如下:
1. 在你的 Android.bp 文件中,添加以下代码:
```
cc_library {
name: "my_lib",
srcs: ["my_source.cpp"],
shared_libs: ["libc++_shared"],
}
```
其中 `my_lib` 是你的库的名称,`my_source.cpp` 是你的源代码文件名。
2. 保存 Android.bp 文件。
3. 在终端中进入你的 Android 项目目录,然后执行以下命令来编译你的库:
```
$ source build/envsetup.sh && lunch <target> && m my_lib
```
其中 `<target>` 是你要编译的目标设备,例如 `aosp_arm-eng`。
编译完成后,`my_lib` 库文件和 `libc++_shared.so` 库文件都会被生成并打包到 APK 中。在运行时,`my_lib` 会自动链接到 `libc++_shared.so`。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)