[英]C shell script for gcc compiler
我想编写一个脚本来测试我的c程序,但是我不知道为什么它不起作用,所以我用一个简单的代码对其进行了测试,这样我就可以确定问题不是由于C文件引起的。
我的C代码是:
#include <stdio.h>
#include <stdlib.h>
int main()
{
printf("Hello World\n");
return 0;
}
我的Shell脚本是:
gcc -o main main.c
echo "Hello world"
如果执行脚本,则会在控制台上收到错误消息
: No such file or directory
gcc: fatal error: no input files
compilation terminated
这是我要执行脚本时遇到的错误
在图像中,您可以看到我的问题,如果我“手工”编译C文件,那没有问题,但是如果我执行包含相同语句的脚本,那是行不通的。
如果我只想编译并仅在脚本中编写用于编译的命令,则它可以工作,但是一旦我发出回声或任何其他命令,它就将不起作用。
我在Windows下使用Ubuntu Shell。
任何帮助将不胜感激。
我的猜测:您使用仅Windows的编辑器(例如记事本)编写了脚本,因此它使用Windows换行符( \\r\\n
AKA CRLF
)。 bash
将main.c\\r
作为参数传递给gcc,gcc无法找到它。 打印出错误后,终端将\\r
解释为回车符,因此,它进入第1列并打印其余消息,这将导致您看到奇怪的事情。
您可以通过在脚本上运行dos2unix
来检查是否存在这种情况,如果现在可以正常运行,那就是我所怀疑的。
解决方案:使用更严格的编辑器和/或确保其编写Unix换行符(纯\\n
,AKA LF
)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.