【问题标题】:how to include the commands of envsetup.sh in Android?如何在 Android 中包含 envsetup.sh 的命令?
【发布时间】:2011-04-13 04:37:55
【问题描述】:

嗨 我在编译时在我的 android 源代码上运行了命令 ./build/envsetup.sh。 我想使用同一文件中存在的以下命令。 -cgrep -嗯 -mm

但我收到以下错误!

 Command 'pgrep' from package 'procps' (main)
 Command 'fgrep' from package 'grep' (main)
 Command 'egrep' from package 'grep' (main)
 Command 'sgrep' from package 'sgrep' (universe)
 Command 'grep' from package 'grep' (main)
 Command 'lgrep' from package 'lv' (universe)
 Command 'rgrep' from package 'grep' (main)
 Command 'zgrep' from package 'gzip' (main)
 Command 'dgrep' from package 'debian-goodies' (main)
 Command 'vgrep' from package 'atfs' (universe)
 Command 'ngrep' from package 'ngrep' (universe)
 Command 'wcgrep' from package 'kdesdk-scripts' (main)
 Command 'agrep' from package 'agrep' (multiverse)
 Command 'xgrep' from package 'xgrep' (universe)
 cgrep: command not found

我应该如何解决这个问题? 我需要对 envsetup.sh 文件进行任何更改吗?

【问题讨论】:

    标签: android build-system


    【解决方案1】:

    mm、mmm 和 cgrep 被定义为 shell 函数。以下为您返回什么:

    set | egrep "^mmm \(\)|^mm \(\)|^cgrep \(\)"
    

    在我的环境中,我得到:

    cgrep ()
    mm ()
    mmm ()
    

    如果您没有得到任何回报,那么您可能是错误地采购了脚本。请记住,您不能只使脚本可执行并运行它,因为它不会将函数导出回您的 shell。您必须使用:

    . build/envsetup.sh
    

    source build/envsetup.sh
    

    确保它在父 shell 中运行。

    【讨论】:

    • 我使用了那个额外的 DOT,然后它就起作用了,例如:$ . ./build/envsetup.sh
    • 每次打开 shell 时都需要这样做吗?
    • 对我来说,项目根目录中的 source build/envsetup.sh 有效!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多