Tutorial Setup CLion for Windows

Index

Create an educational account using your university email:

https://www.jetbrains.com/shop/eform/students

Download, install and login into CLion.

Setup Windows Subsystem for Linux (WSL)

Open Windows Powershell in Admin mode by using Win+X shortcut and use the following command (In this guide we will install WSL version 1, this saves us a lot of troubleshooting. Feel free to try version WSL 2 if you like it)

1
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

kek

Reboot your system

Choose your preferred distro (I suggest using Ubuntu because most of packages are updated and accessible, if you want a lightweight heavy distro use Debian) and download it from Microsoft Store.

kek

kek

Once installed, open it by searching it in Start Menu.

kek

Create a UNIX user with a password (You need it later so choose one you can actually remember).

kek

Update the distro with:

1
sudo apt update && sudo apt upgrade -y

Package installation

Install packages with this command:

1
sudo apt install -y build-essential cmake gdb valgrind wget kcachegrind

Configure CLion

Create a SSH profile with the following command (this assures that CLion connects to WSL):

1
wget https://raw.githubusercontent.com/JetBrains/clion-wsl/master/ubuntu_setup_env.sh && bash ubuntu_setup_env.sh

Open CLion, go to File>Settings>Build, Execution, Deployment>Toolchains, click on + and choose WSL.

Version 2021 and newer

It should detect automatically your WSL distro and version like the following screenshot:

here

Version 2019

Go to credentials, open the menu and configure a new connection:

  • host: localhost,

  • username: WSL username previously created,

  • port: 2222,

  • authentication type: WSL password previously created.

kek

Test the connection with the related button.

kek

If CLion is connected correctly it should automatically detect all the paths, otherwise you can set them manually (they are located under /usr/bin)

kek

Setup Valgrind on CLion

Go to File>Settings, search for Valgrind, set valgrind path (/usr/bin/valgrind) and all its arguments (view the FAQ guide).

kek

Now you can run your program with Valgrind by clicking on the top right icon (I use Atom Material Icons plugin which I strongly recommend:

https://plugins.jetbrains.com/plugin/10044-atom-material-icons.

kek

Redirect Input from file on CLion

Under Edit Configurations inthe top right corner you can change to redirect the input from file like the following images

kek

kek

Setup WSL Terminal on CLion

If you want to run CLI commands directly into the project directory you can use the built-in terminal in CLion.

Go to File>Seetings>Tools>Terminal, under Shell Path you should already see the WSL terminal unless type the following :

1
wsl.exe

or this if you have multiple distros installed:

1
wsl.exe --distribution <distroName>

kek

Setup WSL Xserver [Optional]

If you want to run kcachegrind, massif-visualizer or any Linux app with a GUI follow the next steps.

Open WSL, modify your .bashrc (nano ~/.bashrc) file and append this line at the end of the file:

1
export DISPLAY=:0

kek

This will forward your Linux GUI to the Xserver (installed later).

Download and install VcXsrv Xserver (any other Xserver is fine, I just prefer this one): https://sourceforge.net/projects/vcxsrv/files/latest/download

Launch it and choose Multiple windows (just continue, all the other options are not relevant for our purpose) and then press Finish.

kek

kek

You should see in the bottom right on the taskbar the Xserver icon indicating it’s active.


NOTE

Remember to run XLaunch after every reboot to use it again


Troubleshooting GUI errors

cannot open shared object file: No such file or directory...

If you encounter the following error:

1
failed: libQt5Core.so.5: cannot open shared object file: No such file or directory

while running kcachegrind, fix it by executing the following commands:

1
2
sudo apt install -y binutils
sudo strip --remove-section=.note.ABI-tag /usr/lib/x86_64-linux-gnu/libQt5Core.so.5

Could not load the Qt platform plugin "xcb" in ""...

If you encounter the following error:

1
2
3
qt.qpa.xcb: could not connect to display :0
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

Congratulations πŸŽ‰ you have installed WSL2! (naughty user, you have not followed my guide 😠!).

Replace the previous export with:

1
export DISPLAY=$(route.exe print | grep 0.0.0.0 | head -1 | awk '{print $4}'):0.0

If it does not work follow this guide (Firewall section only): 📖.