我按照 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
让它神奇地发挥作用,但可能会增加它造成的危害!