gpt4 book ai didi

gcc 编译器的 C shell 脚本

转载 作者:行者123 更新时间:2023-11-30 14:49:11 24 4
gpt4 key购买 nike

我想制作一个脚本来测试我的 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 文件,它没有问题,但如果我执行包含相同语句的脚本,它就不起作用。
如果我只想编译并且只在我的脚本中编写用于编译的命令,它可以工作,但是一旦我添加 echo 或任何其他命令,它就无法工作。

我在 Windows 下使用 Ubuntu Shell。

任何帮助将不胜感激。

最佳答案

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

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

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

关于gcc 编译器的 C shell 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49829985/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com