###### tags: `FlagsBlock` `F6789A` `FM603A` # Arduino IDE 無法上傳程式 這有許多種原因, 依照錯誤訊息不同有個別的解法。 ## java.io.IOException: Cannot run program "\_\_\_REMOVE\_\_\_/bin/avrdude": CreateProcess error=2, 系統找不到指定的檔案 依照[這裡的解法](https://forum.arduino.cc/t/java-io-ioexeption-error-when-uploading/404430), 刪除使用者資料夾中 的 Arduino 資料夾即可, 分別是: ``` C:/users/(使用者名稱)/AppData (hidden folder)/Local/Arduino15 C:/users/(使用者名稱)/AppData (hidden folder)/Roaming/Arduino15 ``` 其中 AppData 預設是隱藏的資料夾, 要設定檔案總管才看得到: ![](https://i.imgur.com/M8GFWJ0.png) ## 兩個並存的 Arduino IDE 中 ESP8266 套件版本衝突 在 FlagsBlock 中內嵌了一份 Arduino IDE 1.8.9, 在其 hardware 下有一份 ESP8266 Arduino Core 2.5.0 beta2, 如果電腦上有使用 Arduino IDE 的**開發板管理員**安裝 3.0.0(含) 以上版本的 ESP8266 Arduino Core, 使用 FlagsBlock 內嵌的 Arduino IDE 編譯 ESP8266 的專案就會出現以下錯誤: ``` In file included from D:\FlagsBlock\arduino\hardware\esp8266com\esp8266\cores\esp8266/Arduino.h:41, from sketch\FlagsBlockSketch.ino.cpp:1: D:\FlagsBlock\arduino\hardware\esp8266com\esp8266\cores\esp8266/core_esp8266_version.h: In instantiation of 'constexpr int conststr::parseNthInteger(const char (&)[N], unsigned int) [with unsigned int N = 12]': D:\FlagsBlock\arduino\hardware\esp8266com\esp8266\cores\esp8266/core_esp8266_version.h:114:37: required from here D:\FlagsBlock\arduino\hardware\esp8266com\esp8266\cores\esp8266/core_esp8266_version.h:102:1: internal compiler error: in bot_manip, at cp/tree.c:3055 102 | } | ^ Please submit a full bug report, with preprocessed source if appropriate. See <https://gcc.gnu.org/bugs/> for instructions. ``` 只要把開發板管理員底下的 ESP8266 套件刪除, 或是降版本到 2.x.x 版就可以了。 目前看起來是 ESP8266 Arduino Core 在 [3.0.0](https://github.com/esp8266/Arduino/releases/tag/3.0.0) 後的工具鏈從 2.x.x 時的 gcc 4.8.2 升級到 10.2.0, 在 [3.0.1](https://github.com/esp8266/Arduino/releases/tag/3.0.1) 更升級到 10.3.0, 導致 FlagsBlock 中的 Arduino IDE 在編譯時採用了新版本的 gcc 搭配舊版本的 SDK 檔案而出現問題, 這可以從開啟顯示詳細輸出的結果看到: ```= D:\mee\mega\FlagsBlocks\FlagsBlock\arduino\arduino-builder -dump-prefs -logger=machine -hardware D:\mee\mega\FlagsBlocks\FlagsBlock\arduino\hardware -hardware C:\Users\ShinWei\AppData\Local\Arduino15\packages -tools D:\mee\mega\FlagsBlocks\FlagsBlock\arduino\tools-builder -tools D:\mee\mega\FlagsBlocks\FlagsBlock\arduino\hardware\tools\avr -tools C:\Users\ShinWei\AppData\Local\Arduino15\packages -built-in-libraries D:\mee\mega\FlagsBlocks\FlagsBlock\arduino\libraries -libraries D:\mee\mega\FlagsBlocks\FlagsBlock\block\FlagsBlockSketch\libraries -fqbn=esp8266com:esp8266:d1_mini:xtal=80,vt=flash,exception=disabled,eesz=4M,ip=lm2f,dbg=Disabled,lvl=None____,wipe=none,baud=115200 -ide-version=10809 -build-path C:\Users\ShinWei\AppData\Local\Temp\arduino_build_631934 -warnings=null -prefs=update.check=false -prefs=sketchbook.path=D:\mee\mega\FlagsBlocks\FlagsBlock\block\FlagsBlockSketch -prefs=build.warn_data_percentage=75 -verbose D:\mee\mega\FlagsBlocks\FlagsBlock\block\FlagsBlockSketch\FlagsBlockSketch.ino D:\mee\mega\FlagsBlocks\FlagsBlock\arduino\arduino-builder -compile -logger=machine -hardware D:\mee\mega\FlagsBlocks\FlagsBlock\arduino\hardware -hardware C:\Users\ShinWei\AppData\Local\Arduino15\packages -tools D:\mee\mega\FlagsBlocks\FlagsBlock\arduino\tools-builder -tools D:\mee\mega\FlagsBlocks\FlagsBlock\arduino\hardware\tools\avr -tools C:\Users\ShinWei\AppData\Local\Arduino15\packages -built-in-libraries D:\mee\mega\FlagsBlocks\FlagsBlock\arduino\libraries -libraries D:\mee\mega\FlagsBlocks\FlagsBlock\block\FlagsBlockSketch\libraries -fqbn=esp8266com:esp8266:d1_mini:xtal=80,vt=flash,exception=disabled,eesz=4M,ip=lm2f,dbg=Disabled,lvl=None____,wipe=none,baud=115200 -ide-version=10809 -build-path C:\Users\ShinWei\AppData\Local\Temp\arduino_build_631934 -warnings=null -prefs=update.check=false -prefs=sketchbook.path=D:\mee\mega\FlagsBlocks\FlagsBlock\block\FlagsBlockSketch -prefs=build.warn_data_percentage=75 -verbose D:\mee\mega\FlagsBlocks\FlagsBlock\block\FlagsBlockSketch\FlagsBlockSketch.ino Using board 'd1_mini' from platform in folder: D:\mee\mega\FlagsBlocks\FlagsBlock\arduino\hardware\esp8266com\esp8266 Using core 'esp8266' from platform in folder: D:\mee\mega\FlagsBlocks\FlagsBlock\arduino\hardware\esp8266com\esp8266 Detecting libraries used... "C:\\Users\\ShinWei\\AppData\\Local\\Arduino15\\packages\\esp8266\\tools\\xtensa-lx106-elf-gcc\\3.0.4-gcc10.3-1757bed/bin/xtensa-lx106-elf-g++" -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ "-ID:\\mee\\mega\\FlagsBlocks\\FlagsBlock\\arduino\\hardware\\esp8266com\\esp8266/tools/sdk/include" "-ID:\\mee\\mega\\FlagsBlocks\\FlagsBlock\\arduino\\hardware\\esp8266com\\esp8266/tools/sdk/lwip2/include" "-ID:\\mee\\mega\\FlagsBlocks\\FlagsBlock\\arduino\\hardware\\esp8266com\\esp8266/tools/sdk/libc/xtensa-lx106-elf/include" "-IC:\\Users\\ShinWei\\AppData\\Local\\Temp\\arduino_build_631934/core" -c -w -Os -g -mlongcalls -mtext-section-literals -fno-rtti -falign-functions=4 -std=c++11 -ffunction-sections -fdata-sections -fno-exceptions -w -x c++ -E -CC -DF_CPU=80000000L -DLWIP_OPEN_SRC -DTCP_MSS=536 -DLWIP_FEATURES=1 -DLWIP_IPV6=0 -DARDUINO=10809 -DARDUINO_ESP8266_WEMOS_D1MINI -DARDUINO_ARCH_ESP8266 "-DARDUINO_BOARD=\"ESP8266_WEMOS_D1MINI\"" -DFLASHMODE_DIO -DESP8266 "-ID:\\mee\\mega\\FlagsBlocks\\FlagsBlock\\arduino\\hardware\\esp8266com\\esp8266\\cores\\esp8266" "-ID:\\mee\\mega\\FlagsBlocks\\FlagsBlock\\arduino\\hardware\\esp8266com\\esp8266\\variants\\d1_mini" "C:\\Users\\ShinWei\\AppData\\Local\\Temp\\arduino_build_631934\\sketch\\FlagsBlockSketch.ino.cpp" -o nul Generating function prototypes... "C:\\Users\\ShinWei\\AppData\\Local\\Arduino15\\packages\\esp8266\\tools\\xtensa-lx106-elf-gcc\\3.0.4-gcc10.3-1757bed/bin/xtensa-lx106-elf-g++" -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ "-ID:\\mee\\mega\\FlagsBlocks\\FlagsBlock\\arduino\\hardware\\esp8266com\\esp8266/tools/sdk/include" "-ID:\\mee\\mega\\FlagsBlocks\\FlagsBlock\\arduino\\hardware\\esp8266com\\esp8266/tools/sdk/lwip2/include" "-ID:\\mee\\mega\\FlagsBlocks\\FlagsBlock\\arduino\\hardware\\esp8266com\\esp8266/tools/sdk/libc/xtensa-lx106-elf/include" "-IC:\\Users\\ShinWei\\AppData\\Local\\Temp\\arduino_build_631934/core" -c -w -Os -g -mlongcalls -mtext-section-literals -fno-rtti -falign-functions=4 -std=c++11 -ffunction-sections -fdata-sections -fno-exceptions -w -x c++ -E -CC -DF_CPU=80000000L -DLWIP_OPEN_SRC -DTCP_MSS=536 -DLWIP_FEATURES=1 -DLWIP_IPV6=0 -DARDUINO=10809 -DARDUINO_ESP8266_WEMOS_D1MINI -DARDUINO_ARCH_ESP8266 "-DARDUINO_BOARD=\"ESP8266_WEMOS_D1MINI\"" -DFLASHMODE_DIO -DESP8266 "-ID:\\mee\\mega\\FlagsBlocks\\FlagsBlock\\arduino\\hardware\\esp8266com\\esp8266\\cores\\esp8266" "-ID:\\mee\\mega\\FlagsBlocks\\FlagsBlock\\arduino\\hardware\\esp8266com\\esp8266\\variants\\d1_mini" "C:\\Users\\ShinWei\\AppData\\Local\\Temp\\arduino_build_631934\\sketch\\FlagsBlockSketch.ino.cpp" -o "C:\\Users\\ShinWei\\AppData\\Local\\Temp\\arduino_build_631934\\preproc\\ctags_target_for_gcc_minus_e.cpp" "D:\\mee\\mega\\FlagsBlocks\\FlagsBlock\\arduino\\tools-builder\\ctags\\5.8-arduino11/ctags" -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives "C:\\Users\\ShinWei\\AppData\\Local\\Temp\\arduino_build_631934\\preproc\\ctags_target_for_gcc_minus_e.cpp" 草稿碼編譯中... "C:\\Users\\ShinWei\\AppData\\Local\\Arduino15\\packages\\esp8266\\tools\\xtensa-lx106-elf-gcc\\3.0.4-gcc10.3-1757bed/bin/xtensa-lx106-elf-g++" -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ "-ID:\\mee\\mega\\FlagsBlocks\\FlagsBlock\\arduino\\hardware\\esp8266com\\esp8266/tools/sdk/include" "-ID:\\mee\\mega\\FlagsBlocks\\FlagsBlock\\arduino\\hardware\\esp8266com\\esp8266/tools/sdk/lwip2/include" "-ID:\\mee\\mega\\FlagsBlocks\\FlagsBlock\\arduino\\hardware\\esp8266com\\esp8266/tools/sdk/libc/xtensa-lx106-elf/include" "-IC:\\Users\\ShinWei\\AppData\\Local\\Temp\\arduino_build_631934/core" -c -Os -g -mlongcalls -mtext-section-literals -fno-rtti -falign-functions=4 -std=c++11 -MMD -ffunction-sections -fdata-sections -fno-exceptions -DF_CPU=80000000L -DLWIP_OPEN_SRC -DTCP_MSS=536 -DLWIP_FEATURES=1 -DLWIP_IPV6=0 -DARDUINO=10809 -DARDUINO_ESP8266_WEMOS_D1MINI -DARDUINO_ARCH_ESP8266 "-DARDUINO_BOARD=\"ESP8266_WEMOS_D1MINI\"" -DFLASHMODE_DIO -DESP8266 "-ID:\\mee\\mega\\FlagsBlocks\\FlagsBlock\\arduino\\hardware\\esp8266com\\esp8266\\cores\\esp8266" "-ID:\\mee\\mega\\FlagsBlocks\\FlagsBlock\\arduino\\hardware\\esp8266com\\esp8266\\variants\\d1_mini" "C:\\Users\\ShinWei\\AppData\\Local\\Temp\\arduino_build_631934\\sketch\\FlagsBlockSketch.ino.cpp" -o "C:\\Users\\ShinWei\\AppData\\Local\\Temp\\arduino_build_631934\\sketch\\FlagsBlockSketch.ino.cpp.o" In file included from D:\mee\mega\FlagsBlocks\FlagsBlock\arduino\hardware\esp8266com\esp8266\cores\esp8266/Arduino.h:41, from C:\Users\ShinWei\AppData\Local\Temp\arduino_build_631934\sketch\FlagsBlockSketch.ino.cpp:1: D:\mee\mega\FlagsBlocks\FlagsBlock\arduino\hardware\esp8266com\esp8266\cores\esp8266/core_esp8266_version.h: In instantiation of 'constexpr int conststr::parseNthInteger(const char (&)[N], unsigned int) [with unsigned int N = 12]': D:\mee\mega\FlagsBlocks\FlagsBlock\arduino\hardware\esp8266com\esp8266\cores\esp8266/core_esp8266_version.h:114:37: required from here D:\mee\mega\FlagsBlocks\FlagsBlock\arduino\hardware\esp8266com\esp8266\cores\esp8266/core_esp8266_version.h:102:1: internal compiler error: in bot_manip, at cp/tree.c:3055 102 | } | ^ Please submit a full bug report, with preprocessed source if appropriate. See <https://gcc.gnu.org/bugs/> for instructions. exit status 1 ``` 上述測試的 FlagsBlock 是安裝在 D:\mee\mega\FlagsBlocks\FlagsBlock\, 而並存的另一個 Arduino 安裝了 3.0.2 版的 esp8266 core。可以看到雖然訊息中的第 4 行說採用 D: 中的 esp8266 core, 可是從第 6 行開始卻是執行 C: 中 esp8266 core 的工具鏈去編譯 D: 中的 esp8266 core 檔案, 因而造成不相容的問題。 暫時解法就只能把 ESP8266 Arduino Core 降版本, 避免編譯時採用新版本的 gcc 了。或者都採用[可攜式版本](https://dev.to/codemee/arduino-ide-3nib)避免互相干擾。