无法在MAC终端上执行二进制文件

3

我用makefile生成了文件。 gcc -c hello.c -o hello 然后通过以下方式解决权限问题: chmod a+x ./hello 但是,当我想执行“hello”文件时, ./hello 系统告诉我“无法执行二进制文件” 有人可以帮我吗?我非常期待您的回复。


2
请问你能发布一下file ./hello的内容吗? - undefined
3个回答

8

使用gcc的-c参数会生成一个目标文件,但这个文件无法被直接执行,需要链接后才能生成可执行文件。

如果你只有一个.c文件,可以同时编译和链接,做法如下:

gcc hello.c -o hello

如果您想将其拆分为单独的编译和链接步骤,请执行以下操作:

gcc -c hello.c -o hello.o
gcc hello.o -o hello

2

检查你的系统中是否正确安装了GCC编译器。

gcc -v

编译您的文件:

gcc filename.cpp -o any-name

运行您的程序:

./any-name

0
作为编译和链接同时进行的替代方案,您可以使用make
make hello

注意:不要带上 .c 扩展名。

终端输出应为:

cc     hello.c   -o hello

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接