如何正确地将具有重复二进制文件的首选目录添加到 PATH?

如何正确地将具有重复二进制文件的首选目录添加到 PATH?

我需要使用预构建的二进制文件从源代码编译 Android。问题是,它似乎使用了我不想使用的二进制文件。据我所知,将使用 PATH 中包含 gcc 的第一个目录中的 gcc。但事实并非如此。

这是我覆盖 PATH 的脚本

#!/bin/bash

# The directory from which I want to use gcc, c++ etc
export PATH=/run/media/doctor/temporary/C811_Build_ICS/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/arm-eabi/bin

# Other stuff that I need
export PATH=$PATH:/usr/local/sbin:/usr/local/bin:/usr/bin:
export PATH=$PATH:$ANDROID_HOME/tools
export PATH=$PATH:$ANDROID_HOME/build-tools/19.0.0/
export PATH=$PATH:/opt/java6/bin:/opt/java6/db/bin
export PATH=$PATH:/opt/java6/jre/bin
export PATH=$PATH:/opt/android-ndk

这些是工具链目录的内容

$ ls -1 /run/media/doctor/temporary/C811_Build_ICS/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/arm-eabi/bin
ar
as
c++
g++
gcc
ld
nm
objcopy
objdump
ranlib
strip

现在我跑

$ ./toolchain.sh 
$ which gcc
/usr/bin/gcc

并得到我不想要的 gcc。

答案1

export命令将变量导出到从当前 shell 创建的新进程,但不会将它们导出到“父”进程/shell。

您可以查看这些主题以获取更多信息:

您应该获取您的文件(它不必是可执行文件),而不是运行它:

$ source toolchain

相关内容