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

标签 c gcc freebsd

我正在尝试在我的新 virtualBox 上使用 FreeBSD 操作系统编译一些 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

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

附注:

如果我删除#!行并编译,编译成功,并输出名为“hi”的文件

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

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

有人可以帮我解决这个问题吗?

谢谢

最佳答案

删除这一行:

#!/usr/local/bin/

这是用于 shell 脚本而不是 c

关于c - 无法使用 gcc48 编译我的 C 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33204271/

相关文章:

c - 两个 32 位数字的乘法仅使用 8 位数字

c++ - 二叉树递归删除

bash - Unix 统计错误 "stat: illegal option -- -"

freebsd - freebsd 内核嵌套 extern 声明警告

c - 将结构的实例分配给新的 const 结构实例

c++ - 使用/NODEFAULTLIB 编译

xcode - 为什么 Homebrew 报告 "couldn' t 理解 kern.osversion `14.0.0'”?

linux - 有没有办法只编译 POSIX API

c - 为什么用GCC编译的程序不能用DOSbox运行而用Borland(Turbo C)编译的程序可以?

ruby-on-rails - 如何自定义 Capistranos SSH 命令?