Android make 期间编译 libusbx 失败

Posted

技术标签:

【中文标题】Android make 期间编译 libusbx 失败【英文标题】:Failed to compile libusbx during Android make 【发布时间】:2015-08-24 14:55:40 【问题描述】:

我正在尝试为我的设备编译 CM 12.1。在构建时,我得到以下错误。我也安装了 libusb-1.0-0-dev。我错过了什么?

如果我只用 cflags 编译 1 个文件,我可以得到 .o 文件,但是在构建整个代码时,我如何指定 Make 文件才能工作。

使用 gcc:(成功)

gcc external/libusbx/examples/listdevs.c -o out/target/product/bacon/obj/EXECUTABLES/listdevs_intermediates/listdevs.o `pkg-config --libs --cflags libusb-1.0`

使用 android 制作:(失败)

   external/libusbx/android/jni/../../examples/listdevs.c:22:20: fatal error: libusb.h: No such file or directory

 #include "libusb.h"

compilation terminated.
build/core/binary.mk:699: recipe for target '/home/risingup/CM12.1/out/target/product/bacon/obj/EXECUTABLES/listdevs_intermediates/../../examples/listdevs.o' failed
make: *** [/home/risingup/CM12.1/out/target/product/bacon/obj/EXECUTABLES/listdevs_intermediates/../../examples/listdevs.o] Error 1
make: *** Deleting file '/home/risingup/CM12.1/out/target/product/bacon/obj/EXECUTABLES/listdevs_intermediates/../../examples/listdevs.o'

【问题讨论】:

【参考方案1】:

最后我通过将它添加到 .repo/local_manifests/local_manifests.xml 和 repo 同步解决了这个问题。我认为这些不是必需的,因为我使用 ./extract-files.sh 从手机中提取了属性 blob,但事实并非如此。我的错.. 而且,制作 clobber 并重新构建。

<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="TheMuppets/proprietary_vendor_oppo" path="vendor/oppo" remote="github" revision="cm-12.1" />
<project name="TheMuppets/proprietary_vendor_oneplus" path="vendor/oneplus" remote="github" revision="cm-12.1" />
</manifest>

附:此外,对于未来的读者,请确保创建 4 GB 或更大的交换文件,因为构建过程会占用大量内存,尤其是构建 libwebviewchromium.so。

【讨论】:

以上是关于Android make 期间编译 libusbx 失败的主要内容,如果未能解决你的问题,请参考以下文章

Android系统编译命令make

Android系统编译方法-编译源码命令(make)(lunch)(adb)

Android 编译之make基础

Android make 基础

Android 进阶——源码编译之产品配置和常用的Make脚本模板

编译期间netbean中的错误