cc_binary { name: "Myffplay", hdrs: ["/vendor/platform/secure_c/include/securec.h"], srcs: ["jni/simplest_ffmpeg_player.c"], }
时间: 2024-01-31 07:03:04 浏览: 123
在 `cc_binary` 中添加头文件路径的方式是正确的,但是 `/vendor/platform/secure_c/include/securec.h` 这个头文件路径是一个非常特殊的路径,它指向了一个 Android 系统的私有目录。在 Android.bp 中添加这样的路径是不允许的,因为这会导致 Android 应用无法在非特定设备上运行。
如果你需要使用这个头文件,建议将其复制到你的项目源代码目录中,并在 `Android.bp` 中使用相对路径或绝对路径引用它。例如:
```
cc_binary {
name: "Myffplay",
hdrs: ["path/to/securec.h"], // 使用相对路径或绝对路径引用头文件
srcs: ["jni/simplest_ffmpeg_player.c"],
...
}
```
需要注意的是,如果你使用了相对路径引用头文件,建议将头文件放在与 `Android.bp` 文件相同的目录中或其子目录中,这样可以避免路径错误导致的编译错误。
相关问题
cc_prebuilt_binary { name: "mountnfs.sh", vendor: true, compile_multilib: "64", arch: { arm64: { srcs:["mountnfs.sh"], }, }, strip: { none: true, }, }解释这段代码
这段代码是一个 Android.mk 文件中的一个 cc_prebuilt_binary 模块,用于将一个已经编译好的二进制文件 mountnfs.sh 打包进 Android 系统中。具体解释如下:
- name:指定此模块的名称为 "mountnfs.sh"。
- vendor:指定此模块仅供给系统的 vendor 分区使用。
- compile_multilib:指定此模块编译为 64 位架构。
- arch:指定此模块编译的架构为 arm64,即 64 位 ARM 架构。
- srcs:指定此模块的源文件为 "mountnfs.sh"。
- strip:指定此模块不进行 strip 操作,即不对二进制文件进行剥离符号操作,以保留调试信息。如果设置为 true,则进行 strip 操作;如果设置为 none,则不进行 strip 操作。
cc_binary { name: “yuerinserver”, proprietary: true, //关键参数,决定资源由vendor独占 /其它*/ }转化为mk写法
以下是将cc_binary转化为Android.mk写法:
```
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := yuerinserver
LOCAL_MODULE_TAGS := optional
LOCAL_PROPRIETARY_MODULE := true
LOCAL_SRC_FILES := <source_files>
LOCAL_SHARED_LIBRARIES := <shared_libraries>
include $(BUILD_EXECUTABLE)
```
其中,关键参数`proprietary`被转化为`LOCAL_PROPRIETARY_MODULE`。请注意,`LOCAL_PROPRIETARY_MODULE`只是一个标记,需要在Android.mk文件中额外配置以决定资源是否被vendor独占。
阅读全文