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@sdi29394@s.nimble@spkgs@snimpy-0.1.1@snimpy@spy_types.nim.c.o @m..@s..@s..@sUsers@sdi29394@s.nimble@spkgs@snimpy-0.1.1@snimpy@spy_lib.nim.c.o @m..@s..@s..@sUsers@sdi29394@s.nimble@spkgs@snimpy-0.1.1@snimpy@spy_utils.nim.c.o @m..@s..@s..@sUsers@sdi29394@s.nimble@spkgs@snimpy-0.1.1@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@sdi29394@s.nimble@spkgs@snimpy-0.1.1@snimpy@spy_types.nim.c.o @m..@s..@s..@sUsers@sdi29394@s.nimble@spkgs@snimpy-0.1.1@snimpy@spy_lib.nim.c.o @m..@s..@s..@sUsers@sdi29394@s.nimble@spkgs@snimpy-0.1.1@snimpy@spy_utils.nim.c.o @m..@s..@s..@sUsers@sdi29394@s.nimble@spkgs@snimpy-0.1.1@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@sdi29394@s.nimble@spkgs@snimpy-0.1.1@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@sdi29394@s.nimble@spkgs@snimpy-0.1.1@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?
EDIT:
Code example
import nimpy
import math, random
proc mcpi(nthrows: float): float {.exportpy.} =
randomize()
var inside = 0.0
for i in 1..int64(nthrows):
if hypot(rand(1.0), rand(1.0)) < 1:
inside += 1
result = 4 * inside / nthrows
when isMainModule:
import times
echo "isMainModule"
let time = cpuTime()
echo mcpi(250000000)
echo cpuTIme()-time
Nim command-line call to build a library for Python
c:\bin\nim-1.4.4\bin\nim.exe c -d:release --opt:speed --threads:on --app:lib --tlsEmulation:off --passC:-Ofast --passC:-g0 --passC:-mtune=intel --passC:-msse4.2 --passC:-mmmx --passC:-march=native --out:mcpi.pyd --verbosity:2 --genScript:on --nimcache:./nimcache mcpi.nim