Hello, I wanted to try to create static lib in Nim and interface with C. However I cannot get it to work even when I tried to follow <https://nim-lang.github.io/Nim/backends.html#interfacing-backend-code-calling-nim> .
OS: Linux, Arch: amd64, Nim 1.6.0 and 1.4.8 Nim code in `libnim.nim` file: proc add_int_in_nim*(a, b: cint): cint {.exportc.} = result = a+b echo "Echo in Nim: ", a, " + " , b, " = ", result proc add_float_in_nim*(a, b: cfloat): cfloat {.exportc.} = result = a+b echo "Echo in Nim: ", a, " + " , b, " = ", result proc add_double_in_nim*(a, b: cdouble): cdouble {.exportc.} = result = a+b echo "Echo in Nim: ", a, " + " , b, " = ", result Run C code in `main.c`: #include "libnim.h" #include <stdio.h> int main() { NimMain(); int a = 2; int b = 3; printf("Int: %d + %d\n", a, b); int sum = add_int_in_nim(a, b); printf("C printf - Nim calculated %d + %d = %d\n\n", a, b, sum); float c = 2.0; float d = 3.0; printf("Float: %f + %f\n", c, d); float sum2 = add_float_in_nim(c, d); printf("C printf - Nim calculated %f + %f = %f\n\n", c, d, sum2); double e = 2.0; double f = 3.0; printf("Double: %lf + %lf\n", e, f); int sum3 = add_double_in_nim(e, f); printf("C printf - Nim calculated %lf + %lf = %lf\n\n", e, f, sum3); return 0; } Run Commands: 1. `nim c --gc:orc --app:staticLib --noMain --header --nimcache:"nimcache" -o:"libnim.a" libnim.nim` 2. Copy `nimbase.h` to nimcache folder 3. `gcc -o m -Inimcache libnim.a main.c` GCC output: /usr/bin/ld: /tmp/cckiRwXc.o: in function `main': main.c:(.text+0x9): undefined reference to `NimMain' /usr/bin/ld: main.c:(.text+0x42): undefined reference to `add_int_in_nim' /usr/bin/ld: main.c:(.text+0xc6): undefined reference to `add_float_in_nim' /usr/bin/ld: main.c:(.text+0x165): undefined reference to `add_double_in_nim' /usr/bin/ld: m: hidden symbol `add_float_in_nim' isn't defined /usr/bin/ld: final link failed: bad value collect2: error: ld returned 1 exit status Run Do you have any idea what's wrong please?