Click here to Skip to main content
15,878,959 members
Articles / Programming Languages / C
Tip/Trick

Linux on Windows

Rate me:
Please Sign up or sign in to vote.
4.97/5 (19 votes)
24 Oct 2022CPOL2 min read 59.2K   655   49   41
How to use WSL, GUI on WSL and how to compile for Linux on Windows
This article is useful if you want to compile for Linux without having to use Linux, either because you don't like its interface or because an IDE you use is not available on this system, or for another reason; this article is also useful if you want to test Linux without having to install it.

Install and Configure Linux

First, you install Linux on Windows (by the Microsoft Store).1 I chose Debian.

Download Debian

It is very easy to configure Debian.

GUI

Run the commands below to enable the GUI:

BAT
sudo apt update
sudo apt upgrade
sudo apt-get install xrdp

After you execute the last command, you'll see the below screen:

Configuring Xfce

And one of the commands below (the first to install Xfce4 and the second to install LXDE):

sudo apt-get install xfce4
sudo apt-get install lxde

Every time you want to use the GUI, you have to run the command below and then open the Remote Desktop and connect to the localhost:3390.

BAT
sudo /etc/init.d/xrdp start

Remote Desktop

To make this command permanent, run the command below inside the ~ directory and go to the end.

sudo nano .bashrc

Now you add the lines below, press Ctrl + X, press Y and after press Enter and restart.

sudo /etc/init.d/xrdp start
clear

Modifying .bashrc

And so as not to have to enter your username and password every time, click on Show Options on the Remote Desktop screen and in user name, write the user name of your distribution and check to allow saving my credentials.

How to make the GUI automatic

After you click on connect, the following window will appear:

How to make the GUI automatic (the second window)

In that window, click on more options, use a different account, fill in the username and password fields with the username and password of the distribution you chose and click OK.

In case of error, run the command below, change port=3389 (probably in line 8) to port=3390, press Ctrl + X, press Y and after press Enter and restart.

BAT
sudo nano /etc/xrdp/xrdp.ini

In case of error

To restart, run the command below:

BAT
sudo /etc/init.d/xrdp restart

Debian with Xfce working:

Debian working with Xfce

Debian with LXDE working:

Debian with LXDE working

Compile C and C++ for Linux

First, you need to install the gcc and g++, for this, run the commands below:

BAT
sudo apt-get install gcc
sudo apt-get install g++

And to compile C on Linux to Linux:

BAT
gcc program.c -o program

Where program.c is the file name and program is the program name.

And C++:

BAT
g++ program.cpp -o program

Where program.cpp is the file name and program is the program name.

If you want to make this on Windows (Command Prompt), you add the prefix "distribution run" where distribution is the distribution name.

Example:

I want to compile the file ddd.cpp in Windows with Debian. I run:

BAT
debian run g++ ddd.cpp -o ddd

And to run the program on Debian:

BAT
./program

Where program is the program name.

And to run on Windows (Command Prompt):

BAT
debian run ./program

Where program is the program name.

Notes

1 It cannot be Ubuntu or openSUSE if you want to use the GUI.

History

  • 22nd January, 2020: Initial version
  • 18th Febuary, 2020: Second version

Read My Other Articles

If you have any comments, please leave a note below.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Brazil Brazil
I'm a student of programming and math, a chess player and a person who by nature loves to solve problems

Comments and Discussions

 
GeneralRe: My vote of 5 Pin
Tiago Cavalcante Trindade16-Feb-20 9:42
Tiago Cavalcante Trindade16-Feb-20 9:42 
GeneralMy vote of 5 Pin
gc4328-Jan-20 3:47
gc4328-Jan-20 3:47 
GeneralRe: My vote of 5 Pin
Tiago Cavalcante Trindade31-Jan-20 10:57
Tiago Cavalcante Trindade31-Jan-20 10:57 
QuestionDebian Install Pin
Member 1393261623-Jan-20 10:12
Member 1393261623-Jan-20 10:12 
AnswerRe: Debian Install Pin
Tiago Cavalcante Trindade23-Jan-20 11:14
Tiago Cavalcante Trindade23-Jan-20 11:14 
GeneralRe: Debian Install Pin
tolsen6423-Jan-20 19:21
professionaltolsen6423-Jan-20 19:21 
GeneralRe: Debian Install Pin
FenderBaba23-Jan-20 20:21
FenderBaba23-Jan-20 20:21 
SuggestionRe: Debian Install Pin
JD Esterby31-Jan-20 8:03
JD Esterby31-Jan-20 8:03 
I got the same. I think you need to download and install an X-server like VcXsrv or Xming. Install and run the X-server. Then in your bash shell type:
C++
>export DISPLAY=:0
followed by:
>xfce4-session
This will open a linux desktop under the root user.
GeneralRe: Debian Install Pin
Tiago Cavalcante Trindade3-Feb-20 6:43
Tiago Cavalcante Trindade3-Feb-20 6:43 
GeneralRe: Debian Install Pin
E. Wilcox17-Feb-20 17:00
E. Wilcox17-Feb-20 17:00 
AnswerRe: Debian Install Pin
E. Wilcox17-Feb-20 11:05
E. Wilcox17-Feb-20 11:05 
GeneralRe: Debian Install Pin
Tiago Cavalcante Trindade17-Feb-20 13:07
Tiago Cavalcante Trindade17-Feb-20 13:07 
GeneralRe: Debian Install Pin
alleyes26-Feb-20 7:35
professionalalleyes26-Feb-20 7:35 
GeneralRe: Debian Install Pin
E. Wilcox26-Feb-20 19:54
E. Wilcox26-Feb-20 19:54 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.