diff --git a/examples/adc_polled/Makefile b/examples/adc_polled/Makefile
index a460104b9ed98d7aa1c20904f32362c082c3f0ba..d2635f68711ac0628f432da3c2ba5d7cb5906c50 100644
--- a/examples/adc_polled/Makefile
+++ b/examples/adc_polled/Makefile
@@ -9,9 +9,16 @@ GPIO_Toggle:=EXAM/GPIO/GPIO_Toggle/User
 CH32V003FUN:=../../ch32v003fun
 MINICHLINK:=../../minichlink
 
+ifeq ($(OS),Windows_NT)
+# On Windows, all the major RISC-V GCC installs are missing the -ec libgcc.
+LIB_GCC=../../misc/libgcc.a
+else
+LIB_GCC=-lgcc
+endif
+
 CFLAGS:= \
 	-g -Os -flto -ffunction-sections \
-	-static-libgcc -lgcc \
+	-static-libgcc $(LIB_GCC) \
 	-march=rv32ec \
 	-mabi=ilp32e \
 	-I/usr/include/newlib \
diff --git a/examples/blink/blink.bin b/examples/blink/blink.bin
index b0cf5a4fa20b888e4185c78fd1a5230786bc2059..f4a7fa56e5eb064927ec95f85687b82ff2dc8db8 100755
Binary files a/examples/blink/blink.bin and b/examples/blink/blink.bin differ
diff --git a/examples/debugprintfdemo/Makefile b/examples/debugprintfdemo/Makefile
index 64e8f95c1556a04f31d402622a4e3e74959e067b..09ebe05f5b8f6cb087cec48beb5f6621f54e0e08 100644
--- a/examples/debugprintfdemo/Makefile
+++ b/examples/debugprintfdemo/Makefile
@@ -9,9 +9,16 @@ GPIO_Toggle:=EXAM/GPIO/GPIO_Toggle/User
 CH32V003FUN:=../../ch32v003fun
 MINICHLINK:=../../minichlink
 
+ifeq ($(OS),Windows_NT)
+# On Windows, all the major RISC-V GCC installs are missing the -ec libgcc.
+LIB_GCC=../../misc/libgcc.a
+else
+LIB_GCC=-lgcc
+endif
+
 CFLAGS:= \
 	-g -Os -flto -ffunction-sections \
-	-static-libgcc -lgcc \
+	-static-libgcc $(LIB_GCC) \
 	-march=rv32ec \
 	-mabi=ilp32e \
 	-I/usr/include/newlib \
diff --git a/examples/i2c_oled/Makefile b/examples/i2c_oled/Makefile
index a69a60cb705cb740c687912294bf8713b86298b0..2f71bfbeff3fb495afb03f3c1240be0259a52720 100644
--- a/examples/i2c_oled/Makefile
+++ b/examples/i2c_oled/Makefile
@@ -9,9 +9,16 @@ GPIO_Toggle:=EXAM/GPIO/GPIO_Toggle/User
 CH32V003FUN:=../../ch32v003fun
 MINICHLINK:=../../minichlink
 
+ifeq ($(OS),Windows_NT)
+# On Windows, all the major RISC-V GCC installs are missing the -ec libgcc.
+LIB_GCC=../../misc/libgcc.a
+else
+LIB_GCC=-lgcc
+endif
+
 CFLAGS:= \
 	-g -Os -flto -ffunction-sections \
-	-static-libgcc -lgcc \
+	-static-libgcc $(LIB_GCC) \
 	-march=rv32ec \
 	-mabi=ilp32e \
 	-I/usr/include/newlib \
diff --git a/examples/sandbox/Makefile b/examples/sandbox/Makefile
index 621e2fca5a82b124604734d3a979ccc72698d992..b61a370414ec92c0764b3e9bcdd24e1131165686 100644
--- a/examples/sandbox/Makefile
+++ b/examples/sandbox/Makefile
@@ -9,9 +9,16 @@ GPIO_Toggle:=EXAM/GPIO/GPIO_Toggle/User
 CH32V003FUN:=../../ch32v003fun
 MINICHLINK:=../../minichlink
 
+ifeq ($(OS),Windows_NT)
+# On Windows, all the major RISC-V GCC installs are missing the -ec libgcc.
+LIB_GCC=../../misc/libgcc.a
+else
+LIB_GCC=-lgcc
+endif
+
 CFLAGS:= \
 	-g -Os -flto -ffunction-sections \
-	-static-libgcc -lgcc \
+	-static-libgcc $(LIB_GCC) \
 	-march=rv32ec \
 	-mabi=ilp32e \
 	-I/usr/include/newlib \
diff --git a/examples/self_modify_code/Makefile b/examples/self_modify_code/Makefile
index f4d72fe826a2957824323d10c34e57799ffd6c27..32004066b8d126730961ae6e3397d4b9493dea21 100644
--- a/examples/self_modify_code/Makefile
+++ b/examples/self_modify_code/Makefile
@@ -9,9 +9,16 @@ GPIO_Toggle:=EXAM/GPIO/GPIO_Toggle/User
 CH32V003FUN:=../../ch32v003fun
 MINICHLINK:=../../minichlink
 
+ifeq ($(OS),Windows_NT)
+# On Windows, all the major RISC-V GCC installs are missing the -ec libgcc.
+LIB_GCC=../../misc/libgcc.a
+else
+LIB_GCC=-lgcc
+endif
+
 CFLAGS:= \
 	-g -Os -flto -ffunction-sections \
-	-static-libgcc -lgcc \
+	-static-libgcc $(LIB_GCC) \
 	-march=rv32ec \
 	-mabi=ilp32e \
 	-I/usr/include/newlib \
diff --git a/examples/systick_irq/Makefile b/examples/systick_irq/Makefile
index c5d73486f1b7abb21cc6adad5054475e436f0eba..7e9ef9e4110c27f0b73b7bc95c713c88c7ac9e09 100644
--- a/examples/systick_irq/Makefile
+++ b/examples/systick_irq/Makefile
@@ -9,9 +9,16 @@ GPIO_Toggle:=EXAM/GPIO/GPIO_Toggle/User
 CH32V003FUN:=../../ch32v003fun
 MINICHLINK:=../../minichlink
 
+ifeq ($(OS),Windows_NT)
+# On Windows, all the major RISC-V GCC installs are missing the -ec libgcc.
+LIB_GCC=../../misc/libgcc.a
+else
+LIB_GCC=-lgcc
+endif
+
 CFLAGS:= \
 	-g -Os -flto -ffunction-sections \
-	-static-libgcc -lgcc \
+	-static-libgcc $(LIB_GCC) \
 	-march=rv32ec \
 	-mabi=ilp32e \
 	-I/usr/include/newlib \
diff --git a/examples/tim1_pwm/Makefile b/examples/tim1_pwm/Makefile
index 67357efb1079dd4c61badc7c50c0be664fae9b06..56fff1135994d77e7e5783f0bddd69bacc93f88b 100644
--- a/examples/tim1_pwm/Makefile
+++ b/examples/tim1_pwm/Makefile
@@ -9,9 +9,16 @@ GPIO_Toggle:=EXAM/GPIO/GPIO_Toggle/User
 CH32V003FUN:=../../ch32v003fun
 MINICHLINK:=../../minichlink
 
+ifeq ($(OS),Windows_NT)
+# On Windows, all the major RISC-V GCC installs are missing the -ec libgcc.
+LIB_GCC=../../misc/libgcc.a
+else
+LIB_GCC=-lgcc
+endif
+
 CFLAGS:= \
 	-g -Os -flto -ffunction-sections \
-	-static-libgcc -lgcc \
+	-static-libgcc $(LIB_GCC) \
 	-march=rv32ec \
 	-mabi=ilp32e \
 	-I/usr/include/newlib \
diff --git a/examples/uartdemo/Makefile b/examples/uartdemo/Makefile
index 24d8be31704bb8159fccfdbd9d6dea5d559934ed..a4e1a7c7a9bb6d22577991e6a6c5c893cd9f9a70 100644
--- a/examples/uartdemo/Makefile
+++ b/examples/uartdemo/Makefile
@@ -9,9 +9,16 @@ GPIO_Toggle:=EXAM/GPIO/GPIO_Toggle/User
 CH32V003FUN:=../../ch32v003fun
 MINICHLINK:=../../minichlink
 
+ifeq ($(OS),Windows_NT)
+# On Windows, all the major RISC-V GCC installs are missing the -ec libgcc.
+LIB_GCC=../../misc/libgcc.a
+else
+LIB_GCC=-lgcc
+endif
+
 CFLAGS:= \
 	-g -Os -flto -ffunction-sections \
-	-static-libgcc -lgcc \
+	-static-libgcc $(LIB_GCC) \
 	-march=rv32ec \
 	-mabi=ilp32e \
 	-I/usr/include/newlib \
diff --git a/examples/ws2812bdemo/Makefile b/examples/ws2812bdemo/Makefile
index 50fb288bf17931ce8b572b7a9dedac01a0585e7c..8f7bb985e542b0cb45f74454aeaa5dc99964d7fd 100644
--- a/examples/ws2812bdemo/Makefile
+++ b/examples/ws2812bdemo/Makefile
@@ -7,9 +7,16 @@ PREFIX:=riscv64-unknown-elf
 CH32V003FUN:=../../ch32v003fun
 MINICHLINK:=../../minichlink
 
+ifeq ($(OS),Windows_NT)
+# On Windows, all the major RISC-V GCC installs are missing the -ec libgcc.
+LIB_GCC=../../misc/libgcc.a
+else
+LIB_GCC=-lgcc
+endif
+
 CFLAGS:= \
 	-g -Os -flto -ffunction-sections \
-	-static-libgcc -lgcc \
+	-static-libgcc $(LIB_GCC) \
 	-march=rv32ec \
 	-mabi=ilp32e \
 	-I/usr/include/newlib \