Ошибка при загрузке разделяемых библиотек: /tmp/zshgYCSAH: слишком короткий файл

zpool list -v -H -P

-v verbose
-P show full paths, not just the last component
-H script mode - no headings, fields separated by tab character

Это сделает вас намного ближе.

0
30.03.2020, 14:59
2 ответа

Только что выяснил, в чем причина проблемы :разрешений.

Разрешения GCC

\ls -l /usr/bin/gcc
lrwxrwxrwx 1 root root 5 Feb 25  2019 /usr/bin/gcc -> gcc-8

\ls -l /usr/bin/gcc-8
lrwxrwxrwx 1 root root 22 Apr  6  2019 /usr/bin/gcc-8 -> x86_64-linux-gnu-gcc-8

\ls -l /usr/bin/x86_64-linux-gnu-gcc-8 
-rwxr-x--- 1 root root 1100664 Apr  6  2019 /usr/bin/x86_64-linux-gnu-gcc-8

Разрешения объекта ELF

\ls -l =(/bin/echo -e '#include <stdio.h>\nint main(){printf("c one liners\\n");}' | sudo gcc -x c -o /dev/stdout -)
-rw------- 1 paulo paulo 16600 Mar 30 12:37 /tmp/zshTNxAXl

Выдача команды с префиксомsudo

sudo /lib64/ld-linux-x86-64.so.2 =(/bin/echo -e '#include <stdio.h>\nint main(){printf("c one liners\\n");}' | sudo gcc -x c -o /dev/stdout -)                        
c one liners

возвращает правильный результат.

0
19.03.2021, 02:31

Стоит проверить правильность работы подкоманды компилятора

/bin/echo -e '#include <stdio.h>\nint main(){printf("c one liners\\n");}' | gcc -x c -o a.out -
ls -l a.out

Если в результате временный выходной файл имеет нулевую длину, это вызовет ошибку, которую вы видите

/lib64/ld-linux-x86-64.so.2 /dev/null
/dev/null: error while loading shared libraries: /dev/null: file too short
0
19.03.2021, 02:31

Теги

Похожие вопросы