Install Code::Blocks and GCC 9 on Windows - Build C, C++ and Fortran programs
Posted on November 16, 2019 by Paul
In this article I will show you how to install the Code::Blocks IDE on Windows and how to configure it to use GCC 9 for building C, C++ and Fortran programs. The advantage of this setup is that you will be able to compile any standard C99, C11, C++11, C++14, C++17 and Fortran program on your Windows machine. Please note, that Code::Blocks is available in two versions: as a standalone IDE, as an IDE and an outdated version of GCC (5.1.0). I will show you how to use the latest version of GCC, which is 9.2 at the time of this writing, with the Code::Blocks IDE.
I recommend that you start by installing the latest version of GCC, by following my previous article, in which I’ve shown how to install GCC 9.2 with the MSYS2 software distribution. Once you have GCC installed, you can proceed with installing Code::Blocks.
There is also a video version of this tutorial:
The article consists of five parts:
- Install the Code::Blocks IDE
- Configure Code::Blocks for building C and C++ programs
- Building a C++ project with Code::Blocks
- Configure Code::Blocks for building Fortran programs
- Building a Fortran project with Code::Blocks
From the Downloads section of Code::Blocks select Download the binary release. On this page, select the version of the installer that doesn’t contain mingw in his name, typically this is the first option:
Start the installation process and accept all defaults. At the end of the installation you will get an error about not finding a compiler, ignore the message and close this window.
Configure Code::Blocks for building C and C++ programs:
Let’s configure Code::Blocks for building C and C++ programs. Open Code::Blocks and go to Settings → Compiler:
Select the Toolchain executables: first change the first three names starting with mingw32- by removing the above prefix and second change the Compiler’s installation directory to point to the MSYS2 installation directory, in my case this is C:\msys64\mingw64. You can see the default settings in the next image:
Here are the file names after I’ve removed the mingw32- prefix and changed the compiler’s installation directory:
Please note that the Make program entry remained unchanged!
Press OK (lower right corner) to register the changes.
Building a C++ project with Code::Blocks:
Let’s see how you can create a new C++ project. Go to File → New → Project, select Console application and press Go:
On the next page, read the description of the project type and press Next. Select C++ (this should be selected by default) and press Next again.
Now, give a descriptive title to the project and select where you want the project to be saved, I’ve used Hello for name and C:\DEV for the project path:
Press Next and, on the final page, accept the defaults and press Finish:
Next, go to the left panel, press the plus button to unfold Sources and double click on main.cpp to make it visible in the editor area. You should see a default hello world source code. Use the small green triangle button to build and run the project:
Please note that the left, slightly larger, green triangle button is used to Run an already compiled program. If you change something in your code, save it and use the Build and Run button to generate a new executable.
If you have no error, a console window will open and show you the result of running the program:
By default, GCC 9 compiles your C++ code using the C++14 standard, for C programs the default standard is C11. If you want to use the latest C++17 standard you will need to set a compiler flag. You can do this from Settings → Compiler and Compiler Flags. Right click on one of the Have g++ follow … lines and select New flag:
press OK and make sure the right rectangle is checked:
press OK to register the changes.
Now, when you press Build and Run the compiler will use the C++17 standard. This change will persist between projects, if you need to use an older standard remember to deselect the C++17 flag.
Configure Code::Blocks for building Fortran programs:
Go to Settings → Compiler:
Change the Selected compiler from GNU GCC Compiler to GNU Fortran Compiler. Next, select the Toolchain executables: first change the first three names starting with mingw32- by removing the above prefix and second change the Compiler’s installation directory to point to the MSYS2 installation directory, in my case this is C:\msys64\mingw64. You can see the default settings in the next image:
Here are the file names after I’ve removed the mingw32- prefix and changed the compiler’s installation directory:
Please note that the Make program entry remained unchanged!
Press OK (lower right corner) to register the changes.
Building a Fortran project with Code::Blocks:
Next, I will show you how to build and run a Fortran project from the Code::Blocks IDE.
Let’s see how you can create a new C++ project. Go to File → New → Project, select Fortran application and press Go:
On the next page, read the description of the project type and press Next.
Now, give a descriptive title to the project and select where you want the project to be saved, I’ve used HelloFortran for name and C:\DEV for the project path:
Press Next and make sure to change the Compiler to be GNU Fortran Compiler:
If you are satisfied with the other settings press Finish.
Next, go to the left panel, press the plus button to unfold Fortran Sources and double click on main.f90 to make it visible in the editor area. Change the default Fortran example to something like this:
Use the small green triangle button to build and run the project:
Please note that the left, slightly larger, green triangle button is used to Run an already compiled program. If you change something in your code, save it and use the Build and Run button to generate a new executable.
If you have no error, a console window will open and show you the result of running the program:
If you want to learn more about C++17 I would recommend reading C++17 in Detail by Bartlomiej Filipek:
If you need to brush your Fortran knowledge a good book is Modern Fortran Explained by M. Metcalf, J. Reid and M. Cohen: