【问题标题】:Android4.0.3 source code build errors : [out/target/product/generic/obj/STATIC_LIBRARIES/libext_intermediates/initext.o] Error 1Android4.0.3源码编译错误:[out/target/product/generic/obj/STATIC_LIBRARIES/libext_intermediates/initext.o] 错误1
【发布时间】:2017-01-27 20:34:50
【问题描述】:

环境: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

【问题讨论】:

  • 原因是:我在MAC中解压代码,然后将代码上传到linux。只需在 Linux 中解压缩源代码即可解决问题

标签: java android linux ubuntu-14.04


【解决方案1】:

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

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

原因: 这个问题是一个非常角落的问题。我从 Internet 下载了没有 .repo 的“打包”Android 源代码,而不是痛苦地从 google 中签出。它是导致错误的源代码包。源代码已签出到不区分大小写的文件系统,因此仅大写不同的“重复”文件名被 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();

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

【讨论】:

    猜你喜欢
    • 2022-12-29
    • 2015-09-13
    • 1970-01-01
    • 1970-01-01
    • 2012-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多