我正在尝试使用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.
有人可以帮我这个吗?
由于
答案 0 :(得分:2)
删除此行:
#!/usr/local/bin/
这是针对shell脚本而不是c
答案 1 :(得分:-5)
确定。 MichaelPetch是最接近的答案,但@ amdixon的想法发挥了作用。
所以,我删除了#!使用(不包括-c)行,保存和编译 gcc hello.c -o hi
这已成功编译。
使用./hi运行也正在运行......
谢谢...!