参数列表太长 - Android 2.2.3_r1构建失败

时间:2012-03-07 04:45:01

标签: android build makefile repository

我已经下载了android 2.2.3_r1并设置了build environement。

我已经做了一个特殊的更改,通过在buildspec.mk文件中添加以下行并将其放在源目录中来构建USB驱动器中的输出(该文件只有那行,因为我只想更改出来目录)。

OUT_DIR:=/media/SHANTHA/ANDROID

构建过程按顺序发出以下命令:

  1. source build/envsetup.sh
  2. lunch full-eng
  3. make -j4
  4. 当我运行make -j4时,它会在相当长的时间后在跟踪结束时跟随以下行结束。

    ...
    ...
    target Prelink: libthread_db (/media/SHANTHA/ANDROID/target/product/generic/symbols/system/lib/libthread_db.so)
    target StaticLib: libwebcore (/media/SHANTHA/ANDROID/target/product/generic/obj/STATIC_LIBRARIES/libwebcore_intermediates/libwebcore.a)
    make: execvp: /bin/bash: Argument list too long
    make: *** [/media/SHANTHA/ANDROID/target/product/generic/obj/STATIC_LIBRARIES/libwebcore_intermediates/libwebcore.a] Error 127
    make: *** Waiting for unfinished jobs....
    shantha@shantha:~/ANDROID_S$ 
    

    跟踪将错误指示为make: execvp: /bin/bash: Argument list too long

    如果有人可以帮我解决这个问题,那将是一个很好的帮助。

1 个答案:

答案 0 :(得分:2)

构建WebKit时我也遇到了这个问题。

我的解决方案是下载内核源代码,在include / linux / binfmts.h中更改第14行

  

#define MAX_ARG_STRLEN(PAGE_SIZE * 32)

  

#define MAX_ARG_STRLEN(PAGE_SIZE * 64)

编译并安装内核并重新启动。

但是,此解决方案的问题是每个正在运行的进程都需要更多内存。但你可以启动这个内核只用于构建android。