nim-arduino icon indicating copy to clipboard operation
nim-arduino copied to clipboard

Doesn't work on native Windows

Open adokitkat opened this issue 3 years ago • 6 comments

OS: Windows 10 Nim: devel 1.3.5 (git hash: 8a004e2fc07c87b8308c3c03e4448372a2094383) Arduino: 1.8.13

I followed the instructions but I cannot get this to work on my machine. The error message is about AVR compiler but I did compile normal Arduino sketches before. The path to the compiler is "wrong" - the problem is a space in the path.

Arduino: 1.8.13 (Windows 10), Board: "Arduino Uno"


C:\Program Files (x86)\Arduino\arduino-builder -dump-prefs -logger=machine -hardware C:\Program Files (x86)\Arduino\hardware -tools C:\Program Files (x86)\Arduino\tools-builder -tools C:\Program Files (x86)\Arduino\hardware\tools\avr -built-in-libraries C:\Program Files (x86)\Arduino\libraries -libraries C:\Users\Ado\Documents\Arduino\libraries -fqbn=arduino:avr:uno -ide-version=10813 -build-path C:\Users\Ado\AppData\Local\Temp\arduino_build_717971 -warnings=default -build-cache C:\Users\Ado\AppData\Local\Temp\arduino_cache_771324 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.arduinoOTA.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.arduinoOTA-1.3.0.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude-6.3.0-arduino17.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avr-gcc.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avr-gcc-7.3.0-atmel3.6.1-arduino7.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -verbose C:\Users\Ado\Documents\Arduino\sketch_aug21a\sketch_aug21a.ino

C:\Program Files (x86)\Arduino\arduino-builder -compile -logger=machine -hardware C:\Program Files (x86)\Arduino\hardware -tools C:\Program Files (x86)\Arduino\tools-builder -tools C:\Program Files (x86)\Arduino\hardware\tools\avr -built-in-libraries C:\Program Files (x86)\Arduino\libraries -libraries C:\Users\Ado\Documents\Arduino\libraries -fqbn=arduino:avr:uno -ide-version=10813 -build-path C:\Users\Ado\AppData\Local\Temp\arduino_build_717971 -warnings=default -build-cache C:\Users\Ado\AppData\Local\Temp\arduino_cache_771324 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.arduinoOTA.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.arduinoOTA-1.3.0.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude-6.3.0-arduino17.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avr-gcc.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avr-gcc-7.3.0-atmel3.6.1-arduino7.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -verbose C:\Users\Ado\Documents\Arduino\sketch_aug21a\sketch_aug21a.ino

Using board 'uno' from platform in folder: C:\Program Files (x86)\Arduino\hardware\arduino\avr

Using core 'arduino' from platform in folder: C:\Program Files (x86)\Arduino\hardware\arduino\avr

Detecting libraries used...

nim_arduino macros "--nimflags=\"--cpu:avr" --os:any --gc:arc --exceptions:goto --noMain -d:noSignalHandler -d:danger "-d:useMalloc\"" "--compiler=\"C:\\Program" Files "(x86)\\Arduino\\hardware\\tools\\avr/bin/avr-g++\"" "--cppflags=\"-c" -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10813 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\variants\\standard\"" "--input=\"C:\\Users\\Ado\\AppData\\Local\\Temp\\arduino_build_717971\\sketch\\sketch_aug21a.ino.cpp\"" "--output=\"nul\"" -DARDUINO_LIB_DISCOVERY_PHASE

>>> macros --nimflags="--cpu:avr --os:any --gc:arc --exceptions:goto --noMain -d:noSignalHandler -d:danger -d:useMalloc" --compiler="C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" --cppflags="-c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10813 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard" --input="C:\Users\Ado\AppData\Local\Temp\arduino_build_717971\sketch\sketch_aug21a.ino.cpp" --output="nul" -DARDUINO_LIB_DISCOVERY_PHASE

>>> nim cpp -c --nimcache:C:\Users\Ado\AppData\Local\Temp\arduino_build_717971\sketch\nimcache --cpu:avr --os:any --gc:arc --exceptions:goto --noMain -d:noSignalHandler -d:danger -d:useMalloc C:\Users\Ado\AppData\Local\Temp\arduino_build_717971\sketch\sketch.nim

>>> C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++ -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10813 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard -IC:\Users\Ado\.choosenim\toolchains\nim-1.2.6\lib C:\Users\Ado\AppData\Local\Temp\arduino_build_717971\sketch\nimcache\@mD@c@sPlayground@sNim@sGit@snim-arduino@[email protected]

>>> Error running command

avr-g++: error: Files: No such file or directory



Error while detecting libraries included by C:\Users\Ado\AppData\Local\Temp\arduino_build_717971\sketch\sketch_aug21a.ino.cpp

Generating function prototypes...

nim_arduino macros "--nimflags=\"--cpu:avr" --os:any --gc:arc --exceptions:goto --noMain -d:noSignalHandler -d:danger "-d:useMalloc\"" "--compiler=\"C:\\Program" Files "(x86)\\Arduino\\hardware\\tools\\avr/bin/avr-g++\"" "--cppflags=\"-c" -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10813 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\cores\\arduino" "-IC:\\Program Files (x86)\\Arduino\\hardware\\arduino\\avr\\variants\\standard\"" "--input=\"C:\\Users\\Ado\\AppData\\Local\\Temp\\arduino_build_717971\\sketch\\sketch_aug21a.ino.cpp\"" "--output=\"C:\\Users\\Ado\\AppData\\Local\\Temp\\arduino_build_717971\\preproc\\ctags_target_for_gcc_minus_e.cpp\"" -DARDUINO_LIB_DISCOVERY_PHASE

>>> macros --nimflags="--cpu:avr --os:any --gc:arc --exceptions:goto --noMain -d:noSignalHandler -d:danger -d:useMalloc" --compiler="C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" --cppflags="-c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10813 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard" --input="C:\Users\Ado\AppData\Local\Temp\arduino_build_717971\sketch\sketch_aug21a.ino.cpp" --output="C:\Users\Ado\AppData\Local\Temp\arduino_build_717971\preproc\ctags_target_for_gcc_minus_e.cpp" -DARDUINO_LIB_DISCOVERY_PHASE

>>> nim cpp -c --nimcache:C:\Users\Ado\AppData\Local\Temp\arduino_build_717971\sketch\nimcache --cpu:avr --os:any --gc:arc --exceptions:goto --noMain -d:noSignalHandler -d:danger -d:useMalloc C:\Users\Ado\AppData\Local\Temp\arduino_build_717971\sketch\sketch.nim

>>> C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++ -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10813 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard -IC:\Users\Ado\.choosenim\toolchains\nim-1.2.6\lib C:\Users\Ado\AppData\Local\Temp\arduino_build_717971\sketch\nimcache\@mD@c@sPlayground@sNim@sGit@snim-arduino@[email protected]

>>> Error running command

avr-g++: error: Files: No such file or directory



exit status 1

Error compiling for board Arduino Uno.

So I tried to modify the source so it generates proper paths but now there is a new problem... This time it is OSerror in Nim. osproc.startProcess() procedure doesn't work with this new string.

Look at the Additional info - everything has escape backslashes - also I don't get this "Error: unhandled exception: Access is denied.", maybe I don't have privileges for some reason? Running commands like "cmd" and args "/c", ... works tho.

>>> C:\"Program Files (x86)"\Arduino\hardware\tools\avr/bin/avr-g++ -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10813 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\"Program Files (x86)"\Arduino\hardware\arduino\avr\cores\arduino -IC:\"Program Files (x86)"\Arduino\hardware\arduino\avr\variants\standard -IC:\Users\Ado\.choosenim\toolchains\nim-#devel\lib C:\Users\Ado\AppData\Local\Temp\arduino_build_717971\sketch\nimcache\@m..@s..@s..@s..@[email protected]@[email protected]@sarduino.nim.cpp
Error while detecting libraries included by C:\Users\Ado\AppData\Local\Temp\arduino_build_717971\sketch\sketch_aug21a.ino.cpp
Generating function prototypes...

...

>>> C:\"Program Files (x86)"\Arduino\hardware\tools\avr\bin\avr-g++ -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10813 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\"Program Files (x86)"\Arduino\hardware\arduino\avr\cores\arduino -IC:\"Program Files (x86)"\Arduino\hardware\arduino\avr\variants\standard -IC:\Users\Ado\.choosenim\toolchains\nim-#devel\lib C:\Users\Ado\AppData\Local\Temp\arduino_build_717971\sketch\nimcache\@m..@s..@s..@s..@[email protected]@[email protected]@sarduino.nim.cpp
oserr.nim(94)            raiseOSError
Error: unhandled exception: Access is denied.
Additional info: "C:\\\"Program Files (x86)\"\\Arduino\\hardware\\tools\\avr\\bin\\avr-g++" [OSError]
exit status 1
Error compiling for board Arduino Uno.

However, if I run this code below in Powershell, it works and generates C code into STDOUT.

C:\"Program Files (x86)"\Arduino\hardware\tools\avr/bin/avr-g++ -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10813 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\"Program Files (x86)"\Arduino\hardware\arduino\avr\cores\arduino -IC:\"Program Files (x86)"\Arduino\hardware\arduino\avr\variants\standard -IC:\Users\Ado\.choosenim\toolchains\nim-#devel\lib C:\Users\Ado\AppData\Local\Temp\arduino_build_717971\sketch\nimcache\@m..@s..@s..@s..@[email protected]@[email protected]@sarduino.nim.cpp

adokitkat avatar Aug 21 '20 02:08 adokitkat