繁体   English   中英

GCC编译器的C Shell脚本

[英]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 

这是我要执行脚本时遇到的错误

https://imgur.com/a/zIl55

在图像中,您可以看到我的问题,如果我“手工”编译C文件,那没有问题,但是如果我执行包含相同语句的脚本,那是行不通的。
如果我只想编译并仅在脚本中编写用于编译的命令,则它可以工作,但是一旦我发出回声或任何其他命令,它就将不起作用。

我在Windows下使用Ubuntu Shell。

任何帮助将不胜感激。

我的猜测:您使用仅Windows的编辑器(例如记事本)编写了脚本,因此它使用Windows换行符( \\r\\n AKA CRLF )。 bashmain.c\\r作为参数传递给gcc,gcc无法找到它。 打印出错误后,终端将\\r解释为回车符,因此,它进入第1列并打印其余消息,这将导致您看到奇怪的事情。

您可以通过在脚本上运行dos2unix来检查是否存在这种情况,如果现在可以正常运行,那就是我所怀疑的。

解决方案:使用更严格的编辑器和/或确保其编写Unix换行符(纯\\n ,AKA LF )。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM