无法使用gcc48编译我的C文件

时间:2015-10-18 23:09:49

标签: c gcc freebsd

我正在尝试使用FreeBSD操作系统在我的新virtualBox上编译一些C程序。

我已经安装了gcc48。

我正在尝试编译这个基本程序(保存为hello.c):

#!/usr/local/bin/

#include <stdio.h>

main() 
{
   printf("Hello");
}

我在终端中运行以下命令:

gcc48 -c hello.c -o hi

输入此命令后,我收到以下错误:

hello.c:1:2: error: invalid preprocessing directive #!
 #!/usr/local/bin/
  ^

我已通过执行以下命令确认bash目录位于正确的位置:

find /* -iname "bash"

得到以下结果:

/usr/local/share/doc/bash
/usr/local/bin/bash
/usr/ports/shells/bash

因此,我不明白为什么我得到一个无效的预处理指令错误...

旁注:

如果我删除了#! line和compile,它成功编译,并输出名为&#34; hi&#34;

的文件

但是,如果我尝试使用./hi运行此文件 - 我收到以下错误:

./hi: Exec format error. Binary file not executable.

有人可以帮我这个吗?

由于

2 个答案:

答案 0 :(得分:2)

删除此行:

#!/usr/local/bin/

这是针对shell脚本而不是c

答案 1 :(得分:-5)

确定。 MichaelPetch是最接近的答案,但@ amdixon的想法发挥了作用。

所以,我删除了#!使用(不包括-c)行,保存和编译     gcc hello.c -o hi

这已成功编译。

使用./hi运行也正在运行......

谢谢...!