libssh 示例文件 - exec formate 错误

libssh 示例文件 - exec formate 错误

我按照 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

有人知道为什么二进制文件无法执行吗?如果需要最小可行构建,请告诉我。

谢谢你!

答案1

man gcc明确指出:

-c 选项表示不运行链接器。

*.c它并不是你所想的提供文件的参数……

删除-c链接程序的选项,从而创建可执行二进制文件。

gcc -Wall sshtest1.c -o sshtest -lssh

我已经给出了二进制文件 r+x

这是自动完成的链接二进制文件。

如果我以 sudo 身份运行

不要将sudo其当作灵丹妙药!运行一个不好的、不太了解的程序不会sudo让它神奇地发挥作用,但可能会增加它造成的危害!

相关内容