【发布时间】:2018-08-30 13:18:24
【问题描述】:
我使用 makefile 来生成文件。 gcc -c hello.c -o hello 并通过以下方式解决了权限问题: chmod a+x ./hello 但是,当我想执行“hello”文件时。 ./你好 系统告诉我“无法执行二进制文件” 有人能帮我吗?我非常期待您的回复。
【问题讨论】:
-
可以发一下
file ./hello的内容吗?
我使用 makefile 来生成文件。 gcc -c hello.c -o hello 并通过以下方式解决了权限问题: chmod a+x ./hello 但是,当我想执行“hello”文件时。 ./你好 系统告诉我“无法执行二进制文件” 有人能帮我吗?我非常期待您的回复。
【问题讨论】:
file ./hello的内容吗?
gcc 的 -c 参数会生成一个目标文件,您稍后必须链接该目标文件才能生成可执行文件。您无法执行您生成的目标文件。
相反,要同时编译和链接,适合当你只有 1 个 .c 文件时,这样做
gcc hello.c -o hello
或者,如果您想将其分解为单独的编译和链接步骤,请执行
gcc -c hello.c -o hello.o
gcc hello.o -o hello
【讨论】:
检查GCC编译器是否正确安装在您的系统中。
gcc -v
编译你的文件:
gcc filename.cpp -o any-name
运行你的程序:
./any-name
【讨论】:
作为同时编译和链接的替代方法,您可以使用make:
make hello
注意:没有.c 扩展名。
终端输出应该是:
cc hello.c -o hello
【讨论】: