Мне нужно использовать готовые двоичные файлы для компиляции Android из исходного кода. Проблема в том, что кажется, что он использует двоичные файлы, которые я не хочу использовать. Насколько я понимаю, gcc будет использоваться из первого каталога в PATH, который содержит 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

Это содержимое каталога toolchain

$ 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 ответ1

2

Команда export экспортирует переменные в новые процессы, созданные из текущей оболочки, но не экспортирует их в "родительские" процессы / оболочки.

Вы можете взглянуть на эти темы для получения дополнительной информации:

Вы должны получить исходный файл (это не обязательно должен быть исполняемый файл), а не запускать его:

$ source toolchain

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .