头文件是否需要包含#!/bin/bash shebang?编译报错咨询
头文件不应包含Shebang(#!/bin/bash)
- Shebang(
#!/bin/bash)是给系统shell用的指令,作用是告诉系统用哪个解释器执行可直接运行的脚本文件(比如shell脚本),和C语言编译流程完全无关。 - C语言的头文件(
.h)是用来被.c源文件通过#include引入的,会被C预处理器当作代码的一部分解析。而#!并不是C语言的预编译指令,所以编译器必然会报invalid preprocessing directive #!错误,这是完全正常的编译反馈。 - 正确操作逻辑:只给shell脚本这类可执行脚本文件加shebang,所有C语言的源文件(.c)和头文件(.h)都绝对不能加。
- 解决当前报错的方法:直接删除
main.h第一行的#!/bin/bash,同时检查所有C源文件,如果误加了该语句也一并移除。
内容的提问来源于stack exchange,提问作者Adetops
相关产品推荐
相关产品推荐

