-1

我正在学习尼姆语。每当我尝试使用以下命令运行代码时:nim c --run hello.nim,我都会收到此错误:

Hint: used config file '/etc/nim/nim.cfg' [Conf]
Hint: system [Processing]
Hint: widestrs [Processing]
Hint: io [Processing]
Hint: hello [Processing]
CC: stdlib_io.nim
CC: stdlib_system.nim
CC: hello.nim
Error: execution of an external compiler program 'gcc -c  -w  -I/usr/lib/nim -I/home/celyes/Scripts/Nim -o /home/celyes/.cache/nim/hello_d/stdlib_io.nim.c.o /home/celyes/.cache/nim/hello_d/stdlib_io.nim.c' failed with exit code: 1

In file included from /usr/lib/gcc/x86_64-linux-gnu/9/include/syslimits.h:7,
                 from /usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h:34,
                 from /usr/lib/nim/nimbase.h:257,
                 from /home/celyes/.cache/nim/hello_d/stdlib_io.nim.c:9:
/usr/lib/gcc/x86_64-linux-gnu/9/include/limits.h:194:15: fatal error: limits.h: No such file or directory
  194 | #include_next <limits.h>  /* recurse down to the real one */
      |               ^~~~~~~~~~
compilation terminated.

关于解决方案的任何想法?

4

1 回答 1

1

正如我假设您使用一个很小的 ​​Nim 程序进行的第一次测试,也许提供那几行代码并没有真正的用心。好吧,你的 Linux 发行版和你的 Nim 版本也会很有趣,Nim 0.11 今天的工作方式不太好 :-)

由于 Nim 是一种编译型语言,所以通常最好将编译过程和程序执行过程分开是一个好主意,这样是编译错误还是运行时错误一目了然。您的调用 nim c --run hello.nim 将编译并运行该程序。一个普通的 nim c hello.nim 只能编译,所以很明显它是编译错误。(确实,在您的情况下,编译步骤似乎很明显是问题所在,但我已经看到了不太清楚的问题......)

但是对于您的实际问题,我已经看到了一些人的此类错误消息,原因是实际的 linux 发行版存在问题以及发行版安装 C 编译器的方式不完整,我认为缺少 build-essentials。有关详细信息,请参阅此 Nim 论坛帖子

https://forum.nim-lang.org/t/6571

当您找到问题的实际原因并且不是您自己的错时,您可以将其报告给您的发行版,甚至可以报告给 Nim github 问题跟踪器,以便将来为新手避免此类问题。

当一切正常时,您是初学者并想学习 Nim,也许阅读

http://ssalewski.de/nimprogramming.html

或其他一些教程。

于 2021-05-27T06:26:07.583 回答