Android4.0.3源代码构建错误:[out / target / product / generic / obj / STATIC_LIBRARIES / libext_intermediates / initext.o]错误1

时间:2016-09-20 03:30:03

标签: java android linux ubuntu-14.04

ENV:Ubuntu 14

STATIC_LIBRARIES/libext_intermediates/initext.c:9: error: expected '=', ',', ';', 'asm' or '__attribute__' before '-' token
out/target/product/generic/obj/STATIC_LIBRARIES/libext_intermediates/initext.c:9:28: error: invalid suffix "_init" on integer constant
out/target/product/generic/obj/STATIC_LIBRARIES/libext_intermediates/initext.c:16: error: expected '=', ',', ';', 'asm' or '__attribute__' before '-' token
out/target/product/generic/obj/STATIC_LIBRARIES/libext_intermediates/initext.c:16:24: error: invalid suffix "_init" on integer constant
out/target/product/generic/obj/STATIC_LIBRARIES/libext_intermediates/initext.c:27: error: expected '=', ',', ';', 'asm' or '__attribute__' before '-' token
out/target/product/generic/obj/STATIC_LIBRARIES/libext_intermediates/initext.c:27:24: error: invalid suffix "_init" on integer constant
out/target/product/generic/obj/STATIC_LIBRARIES/libext_intermediates/initext.c:40: error: expected '=', ',', ';', 'asm' or '__attribute__' before '-' token
out/target/product/generic/obj/STATIC_LIBRARIES/libext_intermediates/initext.c:40:27: error: invalid suffix "_init" on integer constant
out/target/product/generic/obj/STATIC_LIBRARIES/libext_intermediates/initext.c:45: error: expected '=', ',', ';', 'asm' or '__attribute__' before '-' token
out/target/product/generic/obj/STATIC_LIBRARIES/libext_intermediates/initext.c:45:23: error: invalid suffix "_init" on integer constant
out/target/product/generic/obj/STATIC_LIBRARIES/libext_intermediates/initext.c:53: error: expected '=', ',', ';', 'asm' or '__attribute__' before '-' token
out/target/product/generic/obj/STATIC_LIBRARIES/libext_intermediates/initext.c:53:26: error: invalid suffix "_init" on integer constant
out/target/product/generic/obj/STATIC_LIBRARIES/libext_intermediates/initext.c:57: error: expected '=', ',', ';', 'asm' or '__attribute__' before '-' token
out/target/product/generic/obj/STATIC_LIBRARIES/libext_intermediates/initext.c:57:23: error: invalid suffix "_init" on integer constant
out/target/product/generic/obj/STATIC_LIBRARIES/libext_intermediates/initext.c: In function 'init_extensions':
out/target/product/generic/obj/STATIC_LIBRARIES/libext_intermediates/initext.c:73: error: 'libxt_CONNMARK' undeclared (first use in this function)
out/target/product/generic/obj/STATIC_LIBRARIES/libext_intermediates/initext.c:73: error: (Each undeclared identifier is reported only once
out/target/product/generic/obj/STATIC_LIBRARIES/libext_intermediates/initext.c:73: error: for each function it appears in.)
out/target/product/generic/obj/STATIC_LIBRARIES/libext_intermediates/initext.c:73:17: error: invalid suffix "_init" on integer constant
out/target/product/generic/obj/STATIC_LIBRARIES/libext_intermediates/initext.c:80: error: 'libxt_DSCP' undeclared (first use in this function)
out/target/product/generic/obj/STATIC_LIBRARIES/libext_intermediates/initext.c:80:13: error: invalid suffix "_init" on integer constant
out/target/product/generic/obj/STATIC_LIBRARIES/libext_intermediates/initext.c:91: error: 'libxt_MARK' undeclared (first use in this function)
out/target/product/generic/obj/STATIC_LIBRARIES/libext_intermediates/initext.c:91:13: error: invalid suffix "_init" on integer constant
out/target/product/generic/obj/STATIC_LIBRARIES/libext_intermediates/initext.c:104: error: 'libxt_rateest' undeclared (first use in this function)
out/target/product/generic/obj/STATIC_LIBRARIES/libext_intermediates/initext.c:104:16: error: invalid suffix "_init" on integer constant
out/target/product/generic/obj/STATIC_LIBRARIES/libext_intermediates/initext.c:109: error: 'libxt_SET' undeclared (first use in this function)
out/target/product/generic/obj/STATIC_LIBRARIES/libext_intermediates/initext.c:109:12: error: invalid suffix "_init" on integer constant
out/target/product/generic/obj/STATIC_LIBRARIES/libext_intermediates/initext.c:117: error: 'libxt_TCPMSS' undeclared (first use in this function)
out/target/product/generic/obj/STATIC_LIBRARIES/libext_intermediates/initext.c:117:15: error: invalid suffix "_init" on integer constant
out/target/product/generic/obj/STATIC_LIBRARIES/libext_intermediates/initext.c:121: error: 'libxt_TOS' undeclared (first use in this function)
out/target/product/generic/obj/STATIC_LIBRARIES/libext_intermediates/initext.c:121:12: error: invalid suffix "_init" on integer constant
make: *** [out/target/product/generic/obj/STATIC_LIBRARIES/libext_intermediates/initext.o] Error 1

1 个答案:

答案 0 :(得分:0)

我也有同样的问题,但在谷歌搜索中什么也没找到。幸运的是,我终于找到了答案。

<强>解决方案: 将每个以-1结尾的.c / .h文件重命名为目录external / iptables / extensions中的原始名称(delete -1)和extenal / iptables / include / linux / netfilter

<强>原因: 这个问题非常重要。我从互联网上下载没有.repo的“打包”Android源代码,而不是从谷歌那里痛苦地退房。它是导致错误的源代码包。源代码被检出一个不区分大小写的文件系统,因此只有资本不同的“重复”文件名由git重命名。例如,同一目录中有一个xt_mark.h和一个xt_MARK.h。在不区分大小写的文件系统上,Git会自动将后一个文件重命名为xt-MARTK-1.h以避免被覆盖。

external / iptables / extension / libext项目,有很多文件,如

 libxt_set.c
 libxt_SET.c    => libxt_SET-1.c
 libxt_dscp.c
 libxt_DSCP.c   => libxt_DSCP-1.c

...

这些重复的文件名只是区别于案例。 它可能在大多数情况下有效,但是项目的makefile枚举了libxt_xxx.c格式的每个c文件,并为它们生成一个init .c文件。所以在生成的inittext.c中,函数条目如:

libxt_DSCP-1_init();
libxt_SET-1_init();

已生成。 ' - '在函数/变量名中被禁止。