Я следовал руководству ssh для создания соединения SSH и после компиляции... Выполнение файла не работает. Ошибка, которую я получаю:
./sshtest
bash: ./sshtest: cannot execute binary file: Exec format error
и если я работаю как sudo
./sshtest: 1: ./sshtest: Syntax error: "(" unexpected
Я дал двоичный файл r+x:
-rwxr-xr-x 1 me me 6328 Oct 21 01:54 sshtest
И вот то, как я компилирую:
gcc -Wall -c sshtest1.c -o sshtest -lssh
Информация о компьютере:
uname -a
Linux me 4.4.0-161-generic #189-Ubuntu SMP Tue Aug 27 08:10:16 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
У кого-либо есть какие-либо идеи о том, почему двоичному файлу не удалось бы выполниться? Сообщите мне, необходима ли минута жизнеспособная сборка.
Спасибо!
man gcc
ясно состояния:
-c опция говорит для не выполнения компоновщика.
Это не параметр для обеспечения *.c
файлы, поскольку Вы, возможно, думали …
Удалите -c
опция связать Вашу программу, таким образом создавая исполняемый двоичный файл.
gcc -Wall sshtest1.c -o sshtest -lssh
Я дал двоичный файл r+x
Это сделано автоматически для связанных двоичных файлов.
если я работаю как sudo
Не использовать sudo
как серебряная пуля! Выполняя плохое, not-well-understood программа с sudo
не заставит его работать волшебно, но может увеличить вред, который это могло причинить!