编译由 Nim 生成的 C 代码

Compile C-code which was generated by Nim

我听说如果你 运行 Nim 生成 C 代码:
nim c -d: release try1.nim
然后可以将进一步生成的 C 代码输入任何操作系统上的任何编译器。

在nimcache文件夹中,生成如下:
@ mtry1.nim.c
stdlib_io.nim.c
stdlib_system.nim.c
try1.json

接下来要用这个编译做什么?

您可能想尝试 运行 nim c -d:release --genScript try1.nim。这将在 nimcache 文件夹中生成一个 compile_try1 脚本,它应该能够编译 Nim 生成的 C 源代码。

  1. nim c --cpu:mips --os:linux --compileOnly --genScript [name_project].nim

  2. 将 nimcache DIR 中的所有内容复制到您的 OS(其中包含您的工具链(ecc、crosstoolng 等))

  3. 使用必要的 gcc 库编辑脚本 compile_[name_project].sh

例如,mipsel-linux-gnu-gcc-9 脚本(如果您还没有,请尝试 Ubuntu sudo apt install gcc-9-multilib-mipsel-linux-gnu):

mipsel-linux-gnu-gcc-9 -c -w -fmax-errors=3 -IC:\nim\lib -IC:\nim\nim_practice -o stdlib_io.nim.c.o stdlib_io.nim.c
mipsel-linux-gnu-gcc-9 -c -w -fmax-errors=3 -IC:\nim\lib -IC:\nim\nim_practice -o stdlib_system.nim.c.o stdlib_system.nim.c
mipsel-linux-gnu-gcc-9 -c -w -fmax-errors=3 -IC:\nim\lib -IC:\nim\nim_practice -o @m[name_projet].nim.c.o @m[name_projet].nim.c
mipsel-linux-gnu-gcc-9 -static -o3 -Wall -fPIC -o [name_projet] stdlib_io.nim.c.o stdlib_system.nim.c.o @m[name_projet].nim.c.o -ldl