What compiler(s) do you have installed and what directory are they installed in?
Please read my previous post where I believe the issue is not with custom compiler configurations in C::B but with the base "GNU GCC Compiler".
I have 6 packages by mingw-64 project installed in their default locations in %ProgramFiles(x86)% and %ProgramFiles%:
i686-8.1.0-posix-sjlj-rt_v6-rev0
i686-8.1.0-win32-sjlj-rt_v6-rev0
i686-8.1.0-posix-dwarf-rt_v6-rev0
x86_64-8.1.0-posix-seh-rt_v6-rev0
x86_64-8.1.0-posix-sjlj-rt_v6-rev0
x86_64-8.1.0-win32-seh-rt_v6-rev0
I also have 2 mingw- and GCC-based MSYS2 packages installed in the default location (c:\msys64):
mingw-w64-i686-toolchain
mingw-w64-x86_64-toolchain
I have GCC v9 based TDM-GCC-32 and TDM-GCC-64 installed in C:\. I also have MSVS 2017 and 2019 which I never used in C::B.
None of the compilers are in the PATH. I did not have C::B compiler configurations for all of them but those few I had I could switch between in v20.03 with no issues.
Be aware the options_gcc.xml file looks for the mingw32 files as per the following options_gcc.xml file snippet below, so when creating a new compiler from this can cause issues when the default.conf is deleted as the executable will revert to mingw32 until the compiler settings are changed.
<CodeBlocks_compiler_options>
<if platform="windows">
<Program name="C" value="mingw32-gcc.exe"/>
<Program name="CPP" value="mingw32-g++.exe"/>
<Program name="LD" value="mingw32-g++.exe"/>
<Program name="DBGconfig" value="gdb_debugger:Default"/>
<Program name="LIB" value="ar.exe"/>
<Program name="WINDRES" value="windres.exe"/>
<Program name="MAKE" value="mingw32-make.exe"/>
</if>
<else>
<Program name="C" value="gcc"/>
<Program name="CPP" value="g++"/>
<Program name="LD" value="g++"/>
<Program name="DBGconfig" value="gdb_debugger:Default"/>
<Program name="LIB" value="ar"/>
<Program name="WINDRES" value=""/>
<Program name="MAKE" value="make"/>
</else>
This looks incorrect to me.
In mingw-64 project with GCC 8.1 distributions, the 32-bit installations (e.g., i686-8.1.0-posix-dwarf-rt_v6-rev0) have unprefixed gcc and g++ executables as well as those prefixed with "i686-w64-mingw32-", e.g., i686-w64-mingw32-gcc.exe. The 64-bit ones (e.g., x86_64-8.1.0-posix-seh-rt_v6-rev0) also have both unprefixed and prefixed executables, with prefix being "x86_64-w64-mingw32-", e.g. x86_64-w64-mingw32-gcc.exe.
Interestingly, in MSYS mingw64 packages with GCC the 32-bit one has only unprefixed executables while the 64-bit one has both unprefixed and prefixed with "x86_64-w64-mingw32-".
TDM-GCC: both 32- and 64-bit installations have prefixed and unprefixed executables, the prefix being "mingw32-" for 32-bit and "x86_64-w64-mingw32-" for 64-bit. I think the difference is that TDM uses uses the original MinGW distribution for 32-bit package while the 64-bit one is based on mingw-64 project.
If the default "parent" compiler "GNU GCC Compiler" will have gcc and g++ with a prefix, the solution to my "problem" would be to remove the prefix from custom compiler configurations. This needs to be done just once for each configuration (or perhaps just once in the "GNU GCC Compiler" itself).
So it is a minor issue, it is just surprising if one does not know where the prefix in the custom configuration came from all of a sudden.