我试图编译我的第一个" Hello World"使用GCC(内置clang和独立GCC-4.9.2)的应用程序没有任何成功:
OS版本是OS X Yosemite 10.10.2。
我使用以下代码(main.c):
#include <stdlib.h>
#include <stdio.h>
int main (){
printf("Hello World!");
getchar();
return 0;
}
然后我在终端中用命令编译它(clang随XCode一起提供):
gcc -o hello -c main.c
因此,在运行编译的hello
文件时出现以下错误:
MBP-Andrii:cTest andrii$ gcc -o hello -c main.c MBP-Andrii:cTest andrii$ hello -bash: /Users/andrii/avrTest/cTest/hello: Permission denied
如果我将hello
文件的权限更改为777
并再次出现新错误:
MBP-Andrii:cTest andrii$ chmod 777 hello MBP-Andrii:cTest andrii$ hello Killed: 9 MBP-Andrii:cTest andrii$
同样的事情发生在独立的GCC-4.9.2上。
我猜这可能与输出二进制格式或编译器的一些缺失标志有关。
答案 0 :(得分:3)
从您用于编译应用程序的命令中删除-c
。
-c
告诉编译器只编译和汇编但不链接。使用-c
时,您实际上并未创建应用程序。
请参阅GCC Manual:
-c
编译或汇编源文件,但不要链接。链接阶段根本没有完成。最终输出是每个源文件的目标文件形式。
默认情况下,源文件的目标文件名是通过将后缀“.c”,“。i”,“。s”等替换为“.o”来生成的。
忽略无法识别的输入文件,不需要编译或汇编。
答案 1 :(得分:0)
尝试输入./hello
来执行它