I just learn to work with Nim-Lang. Im running Nim under Windows 10. Compiling my first test program worked well. Also using it with nimpy as a library in Python. Now I generated a build script using the options --genScript:on --nimcache:./nimcache. Running this build script gives the error
clang.exe -v -shared -o mcpi stdlib_assertions.nim.c.o stdlib_locks.nim.c.o stdlib_sharedlist.nim.c.o stdlib_formatfloat.nim.c.o stdlib_io.nim.c.o stdlib_system.nim.c.o stdlib_math.nim.c.o stdlib_strutils.nim.c.o stdlib_dynlib.nim.c.o stdlib_winlean.nim.c.o stdlib_times.nim.c.o stdlib_os.nim.c.o @m..@s..@s..@sUsers@[email protected]@[email protected]@snimpy@spy_types.nim.c.o @m..@s..@s..@sUsers@[email protected]@[email protected]@snimpy@spy_lib.nim.c.o @m..@s..@s..@sUsers@[email protected]@[email protected]@snimpy@spy_utils.nim.c.o @m..@s..@s..@sUsers@[email protected]@[email protected]@snimpy.nim.c.o stdlib_random.nim.c.o @mmcpi.nim.c.o
clang version 11.0.0
Target: x86_64-pc-windows-msvc
Thread model: posix
InstalledDir: C:\LLVM\bin
"C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Community\\VC\\Tools\\MSVC\\14.16.27023\\bin\\Hostx64\\x64\\link.exe" -out:mcpi -defaultlib:libcmt "-libpath:C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Community\\VC\\Tools\\MSVC\\14.16.27023\\lib\\x64" "-libpath:C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Community\\VC\\Tools\\MSVC\\14.16.27023\\atlmfc\\lib\\x64" "-libpath:C:\\Program Files (x86)\\Windows Kits\\10\\Lib\\10.0.17763.0\\ucrt\\x64" "-libpath:C:\\Program Files (x86)\\Windows Kits\\10\\Lib\\10.0.17763.0\\um\\x64" "-libpath:C:\\LLVM\\lib\\clang\\11.0.0\\lib\\windows" -nologo -dll -implib:mcpi.lib stdlib_assertions.nim.c.o stdlib_locks.nim.c.o stdlib_sharedlist.nim.c.o stdlib_formatfloat.nim.c.o stdlib_io.nim.c.o stdlib_system.nim.c.o stdlib_math.nim.c.o stdlib_strutils.nim.c.o stdlib_dynlib.nim.c.o stdlib_winlean.nim.c.o stdlib_times.nim.c.o stdlib_os.nim.c.o @m..@s..@s..@sUsers@[email protected]@[email protected]@snimpy@spy_types.nim.c.o @m..@s..@s..@sUsers@[email protected]@[email protected]@snimpy@spy_lib.nim.c.o @m..@s..@s..@sUsers@[email protected]@[email protected]@snimpy@spy_utils.nim.c.o @m..@s..@s..@sUsers@[email protected]@[email protected]@snimpy.nim.c.o stdlib_random.nim.c.o @mmcpi.nim.c.o
Microsoft (R) Incremental Linker Version 14.16.27045.0
Copyright (C) Microsoft Corporation. All rights reserved.
LINK : fatal error LNK1104: Datei "m..@s..@s..@sUsers@[email protected]@[email protected]@snimpy@spy_types.nim.c.o" kann nicht geƶffnet werden.
clang: error: linker command failed with exit code 1104 (use -v to see invocation)
The file @m..@s..@s..@sUsers@[email protected]@[email protected]@snimpy@spy_types.nim.c.o is in the directory but obviously the compiler/linker has problems with the leading @ . Am I doing something wrong or is there a bug in Nim for Windows?note that this comes from a SO question (better to link this up in order to avoid duplicating effort by people): https://stackoverflow.com/questions/66426124/nim-lang-compiler-error-with-leading-character
I was not able to reproduce this error with the additional info reported in the SO question.
Sorry for confusing you with posts in both forums. As written in SO mingw gcc doesn't work (I got the version fom Nim homepage).
In file included from CC: stdlib_times.nimC:\Users\Me\nimcache\mcpi_r\stdlib_locks.nim.c:11
:
c:\bin\nim-1.4.4\lib/nimbase.h:271:35: error: static assertion failed: ""
#define NIM_STATIC_ASSERT(x, msg) _Static_assert((x), msg)
^~~~~~~~~~~~~~
c:\bin\nim-1.4.4\lib/nimbase.h:542:1: note: in expansion of macro 'In file included from C:\Users\Me\nimcache\mcpi_r\stdlib_assertions.nim.c:11 '
c:\bin\nim-1.4.4\lib/nimbase.h:271:35: NIM_STATIC_ASSERTerror: (sizeof(NI) == sizeof(void*) && NIM_INTBITS == sizeof(NI)*8, "");
static assertion failed: ""
#define NIM_STATIC_ASSERT(x, msg) ^~~~~~~~~~~~~~~~~_Static_assert
((x), msg)
^~~~~~~~~~~~~~
c:\bin\nim-1.4.4\lib/nimbase.h:542:1: CC: stdlib_os.nimnote:
in expansion of macro 'NIM_STATIC_ASSERT'
NIM_STATIC_ASSERT(sizeof(NI) == sizeof(void*) && NIM_INTBITS == sizeof(NI)*8, "");
^~~~~~~~~~~~~~~~~
In file included from C:\Users\Me\nimcache\mcpi_r\stdlib_formatfloat.nim.c:11:
c:\bin\nim-1.4.4\lib/nimbase.h:271:35: error: static assertion failed: ""
#define NIM_STATIC_ASSERT(x, msg) _Static_assert((x), msg)
^~~~~~~~~~~~~~
c:\bin\nim-1.4.4\lib/nimbase.h:542:1: note: in expansion of macro 'NIM_STATIC_ASSERT'
NIM_STATIC_ASSERT(sizeof(NI) == sizeof(void*) && NIM_INTBITS == sizeof(NI)*8, "");
In file included from ^~~~~~~~~~~~~~~~~C:\Users\Me\nimcache\mcpi_r\stdlib_sharedlist.nim.c:11
:
c:\bin\nim-1.4.4\lib/nimbase.h:271:35: error: static assertion failed: ""
#define NIM_STATIC_ASSERT(x, msg) _Static_assert((x), msg)
^~~~~~~~~~~~~~
c:\bin\nim-1.4.4\lib/nimbase.h:542:1: note: in expansion of macro 'NIM_STATIC_ASSERT'
NIM_STATIC_ASSERT(sizeof(NI) == sizeof(void*) && NIM_INTBITS == sizeof(NI)*8, "");
^~~~~~~~~~~~~~~~~
Error: execution of an external compiler program 'gcc.exe -c -w -fmax-errors=3 -mno-ms-bitfields -DWIN32_LEAN_AND_MEAN -O3 -O3 -fno-strict-aliasing -fno-ident -Ic:\bin\nim-1.4.4\lib -IC:\Hecht\Python\pyCython -o C:\Users\Me\nimcache\mcpi_r\stdlib_formatfloat.nim.c.o C:\Users\Me\nimcache\mcpi_r\stdlib_formatfloat.nim.c' failed with exit code: 1
In file included from C:\Users\Me\nimcache\mcpi_r\stdlib_io.nim.c:11
C:\Hecht\Python\pyCython>:
c:\bin\nim-1.4.4\lib/nimbase.h:271:35: error: static assertion failed: ""
#define NIM_STATIC_ASSERT(x, msg) _Static_assert((x), msg)
^~~~~~~~~~~~~~
c:\bin\nim-1.4.4\lib/nimbase.h:542:1: note: in expansion of macro 'NIM_STATIC_ASSERT'
NIM_STATIC_ASSERT(sizeof(NI) == sizeof(void*) && NIM_INTBITS == sizeof(NI)*8, "");
^~~~~~~~~~~~~~~~~
In file included from C:\Users\Me\nimcache\mcpi_r\stdlib_math.nim.c:11:
c:\bin\nim-1.4.4\lib/nimbase.h:271:35: error: static assertion failed: ""
#define NIM_STATIC_ASSERT(x, msg) _Static_assert((x), msg)
^~~~~~~~~~~~~~
c:\bin\nim-1.4.4\lib/nimbase.h:542:1: In file included from note: in expansion of macro 'C:\Users\Me\nimcache\mcpi_r\stdlib_winlean.nim.c:11:
NIM_STATIC_ASSERT'
c:\bin\nim-1.4.4\lib/nimbase.h:271:35:NIM_STATIC_ASSERT (sizeof(NI) == sizeof(void*) && NIM_INTBITS == sizeof(NI)*8, "");
error: ^~~~~~~~~~~~~~~~~ #define NIM_STATIC_ASSERT(x, msg)
_Static_assert((x), msg)
^~~~~~~~~~~~~~
c:\bin\nim-1.4.4\lib/nimbase.h:542:1: note: in expansion of macro 'NIM_STATIC_ASSERT'
NIM_STATIC_ASSERT(sizeof(NI) == sizeof(void*) && NIM_INTBITS == sizeof(NI)*8, "");
^~~~~~~~~~~~~~~~~
In file included from C:\Users\Me\nimcache\mcpi_r\stdlib_dynlib.nim.c:11:
c:\bin\nim-1.4.4\lib/nimbase.h:271:35: error: static assertion failed: ""
#define NIM_STATIC_ASSERT(x, msg) _Static_assert((x), msg)
In file included from ^~~~~~~~~~~~~~C:\Users\Me\nimcache\mcpi_r\stdlib_system.nim.c:11
:
c:\bin\nim-1.4.4\lib/nimbase.h:542:1:c:\bin\nim-1.4.4\lib/nimbase.h:271:35: note: error: in expansion of macro 'static assertion failed: ""
#define NIM_STATIC_ASSERT(x, msg) NIM_STATIC_ASSERT_Static_assert'
((x), msg)
NIM_STATIC_ASSERT^~~~~~~~~~~~~~(sizeof(NI) == sizeof(void*) && NIM_INTBITS == sizeof(NI)*8, "");
^~~~~~~~~~~~~~~~~c:\bin\nim-1.4.4\lib/nimbase.h:542:1:
note: in expansion of macro 'NIM_STATIC_ASSERT'
NIM_STATIC_ASSERT(sizeof(NI) == sizeof(void*) && NIM_INTBITS == sizeof(NI)*8, "");
^~~~~~~~~~~~~~~~~
In file included from C:\Users\Me\nimcache\mcpi_r\stdlib_strutils.nim.c:11:
c:\bin\nim-1.4.4\lib/nimbase.h:271:35: error: static assertion failed: ""
#define NIM_STATIC_ASSERT(x, msg) _Static_assert((x), msg)
^~~~~~~~~~~~~~
c:\bin\nim-1.4.4\lib/nimbase.h:542:1: note: in expansion of macro 'NIM_STATIC_ASSERT'
In file included from NIM_STATIC_ASSERTC:\Users\Me\nimcache\mcpi_r\stdlib_os.nim.c:11(sizeof(NI) == sizeof(void*) && NIM_INTBITS == sizeof(NI)*8, "");
:
In file included from C:\Users\Me\nimcache\mcpi_r\stdlib_times.nim.c:11 :
error: c:\bin\nim-1.4.4\lib/nimbase.h:271:35:static assertion failed: ""
#define NIM_STATIC_ASSERT(x, msg) _Static_asserterror: ((x), msg)
static assertion failed: ""
#define NIM_STATIC_ASSERT(x, msg) ^~~~~~~~~~~~~~_Static_assert
c:\bin\nim-1.4.4\lib/nimbase.h:542:1:^~~~~~~~~~~~~~ note: c:\bin\nim-1.4.4\lib/nimbase.h:542:1:in expansion of macro ' NIM_STATIC_ASSERTnote: '
NIM_STATIC_ASSERTNIM_STATIC_ASSERT(sizeof(NI) == sizeof(void*) && NIM_INTBITS == sizeof(NI)*8, "");
^~~~~~~~~~~~~~~~~NIM_STATIC_ASSERT
(sizeof(NI) == sizeof(void*) && NIM_INTBITS == sizeof(NI)*8, "");
^~~~~~~~~~~~~~~~~