我正在编译Android P,但无法修复此错误:
x-androideabi/bin -std=gnu99 -mthumb -Os -Wall -Werror -Wno-sign-compare -fPIC -D_USING_LIBCXX -Werror=int-to-pointer-cast -Werror=pointer-to-int-cast -Werror=address-of-temporary -Werror=return-type -Wno-tautological-constant-compare -Wno-null-pointer-arithmetic -Wno-enum-compare -Wno-enum-compare-switch -MD -MF /home/carlos/sources/androidexperience/out/target/product/gt510wifi/obj/STATIC_LIBRARIES/libclearsilverregex_intermediates/android/regex/bb_regex.d -o /home/carlos/sources/androidexperience/out/target/product/gt510wifi/obj/STATIC_LIBRARIES/libclearsilverregex_intermediates/android/regex/bb_regex.o external/busybox/android/regex/bb_regex.c"
external/busybox/android/regex/bb_regex.c:2931:12: error: unused variable 'num_regs' [-Werror,-Wunused-variable]
unsigned num_regs = 0;
^
external/busybox/android/regex/bb_regex.c:5476:20: error: unused parameter 'preg' [-Werror,-Wunused-parameter]
const regex_t *preg;
^
2 errors generated.
[ 11% 6523/57956] -e Prepare config for busybox binary
find: ‘/home/carlos/sources/androidexperience/out/target/p
如果我使用-Werror
可以解决第一个错误,但不能解决第二个错误。
使用-Wunused-parameter
的错误
https://github.com/LineageOS/android_external_busybox/blob/cm-14.1/android/regex/bb_regex.c#L5405
有什么主意吗?
答案 0 :(得分:0)
我今天在Android P中遇到了这个问题。 我在“ const regex_t * preg;”之前添加“ __unused”;并固定。
__unused const regex_t *preg;
答案 1 :(得分:0)
这是因为Android Pie采用了新策略:每个项目的警告都将被视为错误({-Wall -Werror
会附加到每个C / C ++编译器命令行中)。只有变量ANDROID_WARNING_ALLOWED_PROJECTS
中包含的那些项目才可以忽略警告。请注意,此变量由Soong控制。
解决方法是:打开build/soong/cc/config/global.go
,然后将BusyBox的条目添加到列表WarningAllowedProjects
中:
// Directories with warnings from Android.bp files.
WarningAllowedProjects = []string{
"device/",
"vendor/",
+ "external/busybox",
}
保存,make clean
,然后重建。