Search

0.6 — Compiling your first program

By Alex on May 28th, 2007 | last modified by Alex on November 3rd, 2017

Before we can write our first program (which we will do very soon), we need to know a few things about development environments.

First, although our programs will be written inside .cpp files, the .cpp files themselves will be added to a project. The project stores the names of all the code files we want to compile, and also saves various IDE settings. Every time we reopen the project, it will restore the state of the IDE to where we left off. When we choose to compile our program, the project tells the compiler and linker which files to compile and link. It is worth noting that project files for one IDE will not work in another IDE. You will need to create a new project for each program you write (or overwrite an old one).

Second, there are different kinds of projects. When you create a new project, you will have to pick a project type. All of the projects that we will create in this tutorial will be console projects. A console project means that we are going to create programs that can be run from the dos or linux command-line. By default, console applications have no graphical user interface (GUI) and are compiled into stand-alone executable files. This is perfect for learning C++, because it keeps the complexity to a minimum.

Third, when you create a new project for your program, many IDEs will automatically add your project to a “workspace” or a “solution”. A workspace or solution is a container that can hold one or more related projects. Although you can add multiple projects to a single solution, we recommend creating a new workspace or solution for each program. It’s simpler and there’s less chance of something going wrong.

Traditionally, the first program programmers write in a new language is the infamous hello world program, and we aren’t going to deprive you of that experience! You’ll thank us later. Maybe.

A quick note about examples containing code

Starting with this lesson, you will see many examples of C++ code presented. Most of these examples will look something like this:

1

2

3

4

5

6

7

#include <iostream>

intmain()

{

std::cout<<"Hello world!"<<std::endl;

return0;

}

If you select the code from these examples with your mouse and then copy/paste it into your IDE, you may also get the line numbers (depending on how you made the selection). If so, you’ll need to remove these manually.

If you’re using the Visual Studio IDE

Although the following section was written using Visual Studio 2005, it essentially works the same for all versions of Visual Studio.

To create a new project in Visual Studio, go to the File menu, and select New -> Project. A dialog box will pop up that looks like this:

First, make sure “Visual C++” is selected on the left side.

Second, underneath “Visual C++”, select the Win32 project type, and Win32 Console Application will automatically be selected for you. In the Name field, you will enter the name of your program. Type in HelloWorld. In the Location field, pick a directory that you would like your project to be placed into. We recommend you place them in a subdirectory off of your C drive, such as C:\VC2005Projects. Click OK, and then Finish.

On the left side, in the Solution Explorer, Visual Studio has created a number of files for you, including stdafx.h, HelloWorld.cpp, and stdafx.cpp.

In the text editor, you will see that VC2005 has already created some code for you. Select and delete all of the code, and type/copy the following into your compiler:

1

2

3

4

5

6

7

8

#include "stdafx.h"

#include <iostream>

intmain()

{

std::cout<<"Hello world!"<<std::endl;

return0;

}

What you end up with should look like this:

To compile your program, either press F7 or go to the Build menu and choose “Build Solution”. If all goes well, you should see the following appear in the Output window:

This means your compile was successful!

To run your compiled program, press ctrl-F5, or go the Debug menu and choose “Start Without Debugging”. You will see the following:

That is the result of your program!

Note: If you see the console window (black box) without any text, your anti-virus may be interfering. Try turning your anti-virus off temporarily and try again.

Important note to Visual Studio users: Visual studio programs should ALWAYS begin with the following line:

1

#include "stdafx.h"

Otherwise you will receive a compiler warning, such as c:testtest.cpp(21) : fatal error C1010: unexpected end of file while looking for precompiled header directive

Alternately, you can turn off precompiled headers. However, using precompiled headers will make your program compile much faster, so we recommend leaving them on unless you are developing a cross-platform program.

The example programs we show you throughout the tutorial will not include this line, because it is specific to your compiler.

If you’re using the Code::Blocks IDE

To create a new project, go to the File menu, and select New Project. A dialog box will pop up that looks something like this:

Select Console Application and press the Go button.

This should pop up a wizard:

On the next page, select “C++” as your language. Click Next.

Next, you’ll be asked to name your project and choose a location. For your project title, set a name (such as HelloWorld). In the Project Title field, you will enter the name of your program. Type in HelloWorld. In the Folder to create project in field, pick a directory that you would like your project to be placed into. We recommend you place them in a subdirectory off of your C drive, such as C:\CBProjects. Click Next.

On the next screen, Code::Blocks asks you what compiler you want to use, and what configurations you want. Don’t touch anything here, just hit Finish.

Now you’ve created your project, and should see your project under the default workspace:

Open your project node, then open “Sources”, and double click on “main.cpp”. You will see that the hello world program has already been written for you!

To build your project, press ctrl-F9, or go to the Build menu and choose “Build”. If all goes well, you should see the following appear in the Build log window:

This means your compile was successful!

To run your compiled program, press ctrl-F10, or go the Build menu and choose “Run”. You will see something similar to the following:

That is the result of your program!

If you’re using a command-line based compiler

Paste the following into a text file named HelloWorld.cpp:

1

2

3

4

5

6

7

#include <iostream>

intmain()

{

std::cout<<"Hello world!"<<std::endl;

return0;

}

From the command line, type:

g++ -o HelloWorld HelloWorld.cpp

This will compile and link HelloWorld.cpp. To run it, type:

HelloWorld (or possibly ./HelloWorld), and you will see the output of your program.

If you’re using a web-based compiler temporarily

Paste the following into the input form:

1

2

3

4

5

6

7

#include <iostream>

intmain()

{

std::cout<<"Hello world!"<<std::endl;

return0;

}

and then press “Run”. You should see your output below the form.

Once you install a full IDE, you’ll want to return to this lesson again to learn how to create a project in your IDE.

If you’re using other IDEs

You will have to figure out how to do the following on your own:
1) Create a console project
2) Add a .cpp file to the project (if necessary)
3) Paste the following code into the file:

1

2

3

4

5

6

7

#include <iostream>

intmain()

{

std::cout<<"Hello world!"<<std::endl;

return0;

}

4) Compile the project
5) Run the project

If compiling fails (“Something went wrong!”)

It’s okay, take a deep breath. We can probably fix it. 🙂

First, check to ensure that you’ve typed the code in correctly, with no typos or misspellings (also, make sure you’re not including line numbers in your code). The compiler’s error message may give you a clue as to where or what the problem is.

542 comments to 0.6 — Compiling your first program

A cross platform program is a program that can be compiled for multiple platforms (Windows, Mac, Linux, etc.).
Each platform offers some features that won't work on other platforms. If those features are used by a programmer without writing an alternative for other platforms the program won't work on other platforms. Using platform dependent features should be avoided.

Thank you for that great Tutorial. I tried different ones but this here actually even always answers my questions coming up when I process through it. Other ones would rather produce more questions than provide answers. And yours ist structured well. I'll make sure to buy u a coffee once 😉

I tried get running with "Visual Studio Code" but that is kind of wierd. Got so far that I installed the C++ addon but that actually is all I was able to get. Took me some Time to find out how to get to the debugger but once I've been finally there, there always is an error prompt that I have to configure I file first (.json). I searched the online-docu there but got more confused than a solution how to fix that. Do you maybe have a tip for me?

Sounds like you install Visual Studio Code (vscode). vscode is a text editor. What you're looking for is Visual Studio ( https://www.visualstudio.com/downloads/ ). The Community edition is free and does all you need.

The last two lines are generated by your IDE so you know if your program ran successfully or crashed (Return value = 0 means success) and how long it took to run.
The "Press any key to continue." is there, because your program would finish so fast that you wouldn't be able to see the output.

Hi! I learned C++ back in college but, like all students, forgot what I learned after receiving my grades. Back then we were taught using NetBeans IDE but code won't work. But I am 100% sure NetBeans can run C++ I even looked it up xD

When I attempted to create a new project via File->New->Project, the space on the left (where I should have found the project types) was empty. I have searched online, and the general consensus is that this is a simple instilation error; however, I have reinstalled the program (MS Visual Studio 2017) with no change. I also did not see anything amiss on the installer page. Did I miss something, or do I need to aquire the project types as a seperate package?

After following instructions for creating the file and location, I keep receiving an error message indicating that the file could not be saved [and suggesting it may be write-protected]. What does this mean? Should I save the file in a different location?

:EDIT: I forgot to include the backslash before CBProjects in the file location. I corrected this and the problem went away. Thank you for your tutorial, Alex, I really appreciate it!

Hey Alex
I have the following query:
Are projects heavier than individual files?(in terms of space they take up on the hard disk)
Should I create a new project for every program that I run instead of a cpp file?
If I want to experiment with different programs, dont you think projects are a bit slow?

"Are projects heavier than individual files?"
The project contains the files, so yes.

"Should I create a new project for every program that I run instead of a cpp file?"
Definitely yes.

"If I want to experiment with different programs, dont you think projects are a bit slow?"
If you really want to experiment with different programs then you should create a project for each program. If you just want to experiment with different functions or features you can do that in a single project.

I have taken a c++ course in college back in 2007 but I'm taking the tutorial to to recap and further my knowledge. I noticed you said all examples will be console programs. This was one of my biggest frustrations, that I could not move past the console applications and make programs with GUIs. After learning the basics ( I still need to master the basics) how do I go about learning to make GUIs with c++? There is a lot of information on the web but I have not found something that takes you step-by-step like this tutorial.

Hi Frederico!
GUIs in C++ aren't easy, not because they're difficult to understand, but because there's no universal way to write them. You could learn Windows Forms, but they're Windows only. Or you use a framework (GTK, QT) which runs on multiple OSs but requires libraries. There are probably tutorials somewhere but most of the work is going to be reading documentations.

To make GUIs in C++, you'll need the help of a 3rd party UI framework of some kind. Deciding which one to use is probably the hardest decision -- figuring out how to use them tends to be a bit easier because there are often internet tutorials on how to do things like create a window, populate widgets, and run the event loop. Many UI frameworks also come with sample apps that you can compile and run, and then inspect to see what they're doing.

Hello,
When I try to create a project using Codeblocks, everything runs smoothly until I hit "Finish", then I get an error message saying Codeblocks couldn't create the file. It doesn't tell me why it failed to create the file, either. I'm using a Mac, did I fail to install something correctly?

Wow, I am very glad I found this site! This is gonna help me a ton! Can't wait to get my computer back so I can use the knowledge of these lessons :p (btw, learning this in IT class rn. it's not about c++, but I'm doing these lessons after I am done with class work.) Just wanted to show some gratitude 🙂

well i created a new project and still didnt work then i reinstalled the compiler and didnt work and then i saw this code https://gyazo.com/568dfc4f301c8fa698894b097ca375d4 on the visualstudio website and it worked so im gonna work with this then :/

You want to have windows desktop selected or you can just have visual c++ selected, and then it should automatically have windows console application selected. Win32 console is the same as windows console application.