#linux #bash #hidden-files
Вопрос:
Кросс — компилятор, который работал без проблем в Linux 2.6.26-2-686 i686 теперь не работает в Linux 4.19.0-13-amd64 x86_64
В каталоге установки перечислены файлы, а также «скрытые» файлы, начинающиеся с точки.
schoutem@DHU007:~/x-tools/arm-hc2-linux-gnueabi/bin$ ll
total 37352
-r-xr-xr-x 1 schoutem schoutem 666783 2010-09-21 17:43 .arm-hc2-linux-gnueabi-addr2line
-r-xr-xr-x 31 schoutem schoutem 395 2010-09-21 19:55 arm-hc2-linux-gnueabi-addr2line
-r-xr-xr-x 1 schoutem schoutem 1022 2010-09-21 19:31 .arm-hc2-linux-gnueabi-addr2name.awk
-r-xr-xr-x 31 schoutem schoutem 395 2010-09-21 19:55 arm-hc2-linux-gnueabi-addr2name.awk
-r-xr-xr-x 2 schoutem schoutem 696445 2010-09-21 17:43 .arm-hc2-linux-gnueabi-ar
-r-xr-xr-x 31 schoutem schoutem 395 2010-09-21 19:55 arm-hc2-linux-gnueabi-ar
-r-xr-xr-x 2 schoutem schoutem 1159523 2010-09-21 17:43 .arm-hc2-linux-gnueabi-as
-r-xr-xr-x 31 schoutem schoutem 395 2010-09-21 19:55 arm-hc2-linux-gnueabi-as
-r-xr-xr-x 2 schoutem schoutem 259750 2010-09-21 19:30 .arm-hc2-linux-gnueabi-c
-r-xr-xr-x 31 schoutem schoutem 395 2010-09-21 19:55 arm-hc2-linux-gnueabi-c
lrwxrwxrwx 1 schoutem schoutem 25 2011-06-07 16:04 arm-hc2-linux-gnueabi-cc -> arm-hc2-linux-gnueabi-gcc
-r-xr-xr-x 1 schoutem schoutem 665484 2010-09-21 17:43 .arm-hc2-linux-gnueabi-c filt
-r-xr-xr-x 31 schoutem schoutem 395 2010-09-21 19:55 arm-hc2-linux-gnueabi-c filt
-r-xr-xr-x 1 schoutem schoutem 258018 2010-09-21 19:30 .arm-hc2-linux-gnueabi-cpp
-r-xr-xr-x 31 schoutem schoutem 395 2010-09-21 19:55 arm-hc2-linux-gnueabi-cpp
-r-xr-xr-x 1 schoutem schoutem 2771 2010-09-21 17:39 .arm-hc2-linux-gnueabi-ct-ng.config
-r-xr-xr-x 31 schoutem schoutem 395 2010-09-21 19:55 arm-hc2-linux-gnueabi-ct-ng.config
-r-xr-xr-x 2 schoutem schoutem 259750 2010-09-21 19:30 .arm-hc2-linux-gnueabi-g
-r-xr-xr-x 31 schoutem schoutem 395 2010-09-21 19:55 arm-hc2-linux-gnueabi-g
-r-xr-xr-x 2 schoutem schoutem 256131 2010-09-21 19:30 .arm-hc2-linux-gnueabi-gcc
-r-xr-xr-x 31 schoutem schoutem 395 2010-09-21 19:55 arm-hc2-linux-gnueabi-gcc
В новой установке файлы, начинающиеся с точки, скрыты и не обнаруживаются системой при вызове компилятора.
root@shu006:/opt/arm-hc2-linux-gnueabi/bin# ll
total 124
-r-xr-xr-x 31 schoutem schoutem 395 Sep 21 2010 arm-hc2-linux-gnueabi-addr2line
-r-xr-xr-x 31 schoutem schoutem 395 Sep 21 2010 arm-hc2-linux-gnueabi-addr2name.awk
-r-xr-xr-x 31 schoutem schoutem 395 Sep 21 2010 arm-hc2-linux-gnueabi-ar
-r-xr-xr-x 31 schoutem schoutem 395 Sep 21 2010 arm-hc2-linux-gnueabi-as
-r-xr-xr-x 31 schoutem schoutem 395 Sep 21 2010 arm-hc2-linux-gnueabi-c
lrwxrwxrwx 1 schoutem schoutem 25 Jun 7 2011 arm-hc2-linux-gnueabi-cc -> arm-hc2-linux-gnueabi-gcc
-r-xr-xr-x 31 schoutem schoutem 395 Sep 21 2010 arm-hc2-linux-gnueabi-c filt
-r-xr-xr-x 31 schoutem schoutem 395 Sep 21 2010 arm-hc2-linux-gnueabi-cpp
-r-xr-xr-x 31 schoutem schoutem 395 Sep 21 2010 arm-hc2-linux-gnueabi-ct-ng.config
-r-xr-xr-x 31 schoutem schoutem 395 Sep 21 2010 arm-hc2-linux-gnueabi-g
-r-xr-xr-x 31 schoutem schoutem 395 Sep 21 2010 arm-hc2-linux-gnueabi-gcc
-r-xr-xr-x 31 schoutem schoutem 395 Sep 21 2010 arm-hc2-linux-gnueabi-gcc-4.3.2
-r-xr-xr-x 31 schoutem schoutem 395 Sep 21 2010 arm-hc2-linux-gnueabi-gccbug
-r-xr-xr-x 31 schoutem schoutem 395 Sep 21 2010 arm-hc2-linux-gnueabi-gcj
-r-xr-xr-x 31 schoutem schoutem 395 Sep 21 2010 arm-hc2-linux-gnueabi-gcov
-r-xr-xr-x 31 schoutem schoutem 395 Sep 21 2010 arm-hc2-linux-gnueabi-gdb
-r-xr-xr-x 31 schoutem schoutem 395 Sep 21 2010 arm-hc2-linux-gnueabi-gdbtui
-r-xr-xr-x 31 schoutem schoutem 395 Sep 21 2010 arm-hc2-linux-gnueabi-gfortran
-r-xr-xr-x 31 schoutem schoutem 395 Sep 21 2010 arm-hc2-linux-gnueabi-gprof
-r-xr-xr-x 31 schoutem schoutem 395 Sep 21 2010 arm-hc2-linux-gnueabi-jcf-dump
-r-xr-xr-x 31 schoutem schoutem 395 Sep 21 2010 arm-hc2-linux-gnueabi-ld
-r-xr-xr-x 31 schoutem schoutem 395 Sep 21 2010 arm-hc2-linux-gnueabi-nm
-r-xr-xr-x 31 schoutem schoutem 395 Sep 21 2010 arm-hc2-linux-gnueabi-objcopy
-r-xr-xr-x 31 schoutem schoutem 395 Sep 21 2010 arm-hc2-linux-gnueabi-objdump
-r-xr-xr-x 31 schoutem schoutem 395 Sep 21 2010 arm-hc2-linux-gnueabi-populate
-r-xr-xr-x 31 schoutem schoutem 395 Sep 21 2010 arm-hc2-linux-gnueabi-ranlib
-r-xr-xr-x 31 schoutem schoutem 395 Sep 21 2010 arm-hc2-linux-gnueabi-readelf
-r-xr-xr-x 31 schoutem schoutem 395 Sep 21 2010 arm-hc2-linux-gnueabi-run
-r-xr-xr-x 31 schoutem schoutem 395 Sep 21 2010 arm-hc2-linux-gnueabi-size
-r-xr-xr-x 31 schoutem schoutem 395 Sep 21 2010 arm-hc2-linux-gnueabi-sstrip
-r-xr-xr-x 31 schoutem schoutem 395 Sep 21 2010 arm-hc2-linux-gnueabi-strings
-r-xr-xr-x 31 schoutem schoutem 395 Sep 21 2010 arm-hc2-linux-gnueabi-strip
root@shu006:/opt/arm-hc2-linux-gnueabi/bin#
root@shu006:/opt/arm-hc2-linux-gnueabi/bin#
root@shu006:/opt/arm-hc2-linux-gnueabi/bin#
root@shu006:/opt/arm-hc2-linux-gnueabi/bin# arm-hc2-linux-gnueabi-gcc --version
/opt/arm-hc2-linux-gnueabi/bin/arm-hc2-linux-gnueabi-gcc: 15: exec: /opt/arm-hc2-linux-gnueabi/bin/.arm-hc2-linux-gnueabi-gcc: not found
root@shu006:/opt/arm-hc2-linux-gnueabi/bin#
root@shu006:/opt/arm-hc2-linux-gnueabi/bin#
root@shu006:/opt/arm-hc2-linux-gnueabi/bin# ll -A
total 37228
-r-xr-xr-x 1 schoutem schoutem 666783 Sep 21 2010 .arm-hc2-linux-gnueabi-addr2line
-r-xr-xr-x 31 schoutem schoutem 395 Sep 21 2010 arm-hc2-linux-gnueabi-addr2line
-r-xr-xr-x 1 schoutem schoutem 1022 Sep 21 2010 .arm-hc2-linux-gnueabi-addr2name.awk
-r-xr-xr-x 31 schoutem schoutem 395 Sep 21 2010 arm-hc2-linux-gnueabi-addr2name.awk
-r-xr-xr-x 2 schoutem schoutem 696445 Sep 21 2010 .arm-hc2-linux-gnueabi-ar
-r-xr-xr-x 31 schoutem schoutem 395 Sep 21 2010 arm-hc2-linux-gnueabi-ar
-r-xr-xr-x 2 schoutem schoutem 1159523 Sep 21 2010 .arm-hc2-linux-gnueabi-as
-r-xr-xr-x 31 schoutem schoutem 395 Sep 21 2010 arm-hc2-linux-gnueabi-as
-r-xr-xr-x 2 schoutem schoutem 259750 Sep 21 2010 .arm-hc2-linux-gnueabi-c
-r-xr-xr-x 31 schoutem schoutem 395 Sep 21 2010 arm-hc2-linux-gnueabi-c
lrwxrwxrwx 1 schoutem schoutem 25 Jun 7 2011 arm-hc2-linux-gnueabi-cc -> arm-hc2-linux-gnueabi-gcc
-r-xr-xr-x 1 schoutem schoutem 665484 Sep 21 2010 .arm-hc2-linux-gnueabi-c filt
-r-xr-xr-x 31 schoutem schoutem 395 Sep 21 2010 arm-hc2-linux-gnueabi-c filt
-r-xr-xr-x 1 schoutem schoutem 258018 Sep 21 2010 .arm-hc2-linux-gnueabi-cpp
-r-xr-xr-x 31 schoutem schoutem 395 Sep 21 2010 arm-hc2-linux-gnueabi-cpp
-r-xr-xr-x 1 schoutem schoutem 2771 Sep 21 2010 .arm-hc2-linux-gnueabi-ct-ng.config
-r-xr-xr-x 31 schoutem schoutem 395 Sep 21 2010 arm-hc2-linux-gnueabi-ct-ng.config
-r-xr-xr-x 2 schoutem schoutem 259750 Sep 21 2010 .arm-hc2-linux-gnueabi-g
-r-xr-xr-x 31 schoutem schoutem 395 Sep 21 2010 arm-hc2-linux-gnueabi-g
-r-xr-xr-x 2 schoutem schoutem 256131 Sep 21 2010 .arm-hc2-linux-gnueabi-gcc
-r-xr-xr-x 31 schoutem schoutem 395 Sep 21 2010 arm-hc2-linux-gnueabi-gcc
Сам компилятор является сценарием, вызывающим скрытый файл :
root@shu006:/opt/arm-hc2-linux-gnueabi/bin# cat arm-hc2-linux-gnueabi-gcc
#!/bin/sh
canonicalizedname=$(readlink -nm "${0}")
dirname="$(dirname "${canonicalizedname}")"
basename="$(basename "${canonicalizedname}")"
ld_lib_path="$(dirname "${dirname}")/lib"
case ":${LD_LIBRARY_PATH}:" in
*":${ld_lib_path}:"*) ;;
*) LD_LIBRARY_PATH="${ld_lib_path}${LD_LIBRARY_PATH: :${LD_LIBRARY_PATH}}";;
esac
export LD_LIBRARY_PATH
exec "${dirname}/.${basename}" "$@"
root@shu006:/opt/arm-hc2-linux-gnueabi/bin#
Как я могу заставить свой кросс-компилятор снова работать при новой установке?
Спасибо,
Комментарии:
1. Очень странно. Файл находится там. Скрыт он или нет, не имеет значения (по определению, файлы dot тоже были скрыты раньше. Старая установка, вероятно, просто использовала другой
ll
псевдоним, который уже включал флаг-a
или-A
). Что произойдет, если вы побежите/opt/arm-hc2-linux-gnueabi/bin/.arm-hc2-linux-gnueabi-gcc
прямо из своей оболочки?2. В любом случае, вы можете спросить об этом unix.stackexchange.com . Кроме того, этот вопрос кажется несколько похожим. Особенно, этот ответ имеет смысл, так как вы переключились с i686 (32-разрядная версия) на x86_64 (64-разрядная версия).