Getting Started with C++ on Raspberry Pi (Guide & examples) –

A lot of programming languages are designed to be easy to use, but not C++. If you want to learn C++, you probably have a pretty good idea of what the language is supposed to do but don’t know where to start. Not sure how to compile your code? Don’t know how to work with files, control structures, or even basic functions? This series of articles is for you.

What does “getting started” mean when you’re learning a programming language? I’m not talking about the first steps of learning a new programming language or even the basics of how to code. I’m interested in how people actually learn programming languages. Why do people think that they should do it a certain way? What do they actually do when they get to the point of being comfortable with a programming language? The truth is that there is no “right way” to learn a programming language, just as there is no right way to learn a new programming language.

Raspberry Pi is an incredibly popular, inexpensive, and easy to use single-board computer. It is ideal to develop your own ideas into a working prototype. The Raspberry Pi Foundation has a great set of tutorials that cover just about everything you could need to get started. There is even a great Raspberry Pi Dev-Kit that includes some development boards for building your own projects.

Python and Scratch are the most popular programming languages for the Raspberry Pi. I talk about Python a lot on this site because it’s the most natural for beginners, but it’s not the only choice, and it’s not always the best. So, how do you utilize C++ on a Raspberry Pi? That is what this essay will discuss.

After installation, Raspberry Pi OS contains all of the packages required to code in C/C++. The default text editor (Geany) has built-in support for this language, and common libraries are pre-installed to interface with the particular Raspberry Pi components (GPIO, Camera, etc.).

Even for a seasoned coder, just because everything is ready to use doesn’t imply it’s easy (like me). There are a few details you should be aware of in order to get the most out of your Raspberry Pi. I’ll start by explaining C++ and the Raspberry Pi, then show you how to get started, and then explain why and when you should use it instead of Python.

If you want to make rapid progress with the Raspberry Pi, check out my e-book. It’s a 30-day challenge in which you learn something new every day until you’ve mastered the Raspberry Pi. The first third of the book covers the fundamentals, but the latter chapters contain tasks that you may attempt on your own.

Is it possible to use C/C++ on a Raspberry Pi?

If you’re confused by all the new terms and acronyms, get my free Raspberry Pi dictionary (PDF format)!

C/C++ are natively supported on the Raspberry Pi. Any Raspberry Pi OS version comes with the C preprocessor and other required software (such as build and libstdc++). Nano (command-line text editor) or Geany may be used to write the source code (graphical editor).

Raspberry Pi OS also contains the most common libraries you’ll need for simple applications and controlling the GPIO pins, as we’ll see later (with Wiringpi). Even if you need to download and install some extra libraries, you can interact with the camera.1622188240_344_How-to-Use-Geany-on-Raspberry-Pi-Full-guide-with

Geany is a great editor for writing your first scripts (I have a tutorial about it here). On Raspberry Pi OS with Desktop, it comes pre-installed. It isn’t, however, the sole choice. Visual Studio Code may now be added to the Recommended Software tool with a single click, and many others can be installed quickly (check my favorite text editors here and how to install them).

On the Raspberry Pi, how to utilize C/C++

So, in a nutshell, yes, C and C++ can be used on the Raspberry Pi, and everything is set to go. However, regardless of your present level of proficiency in these languages, you may need some pointers to get started. I hadn’t worked with C++ since high school, so I was rusty. However, it has returned after a few tests, and I can now provide some instances.

First attempt: Good day, world!

My aim here is not to provide a comprehensive C/C++ tutorial. Instead, I’ll show you how to utilize it with the Raspberry Pi. But, if you’re brand new to this, let’s start from the beginning. Here’s the most basic code you can use to get started:

#include using namespace std; int main() { cout << “Hello you” << endl; return 0; }

  • Make a new document (with Geany, Nano or any other text editor).
  • This source code should be copied and pasted.
  • Save the document (hello.cpp for example).
  • Pre-compilation is required for C/C++, and you may accomplish that with this command: hello hello.cpp g++ -o
  • Then use the command./hello to execute your application.

If all goes according to plan, it should simply say “Hello you.” Alright? Is it true that your C/C++ skills have returned as well?

If this is your first script in C/C++, I wouldn’t read any farther unless you’re completely comfortable with the language. It’s just going to get harder. On Skillshare, you should be able to locate a good course for C/C++ novices that will cover everything in a few videos. There’s no need to learn the hard way when Skillshare provides a one-month free trial with access to any course.

Today’s Raspberry Pi Bootcamp Sale is 10% off. Take it a step farther. I’m here to assist you in getting started with the Raspberry Pi. Learn all of the necessary abilities in the proper sequence.

Use the Raspberry Pi Camera to interact with it.

Okay, I hope you’re still here with me. The usual libraries are accessible, but you can “easily” utilize Raspberry Pi components like the camera in your C++ applications, as I previously described.

I’m not sure whether there are any more options, but the one I discovered is to utilize Raspicam, a GitHub-based library for using the Raspberry Pi Camera. It’s quite nice since it supports OpenCV.

Raspicam should be installed on your Raspberry Pi.

Here’s how to get Raspicam running on your Raspberry Pi:

  • Install cmake first if it isn’t already installed: apt-get install cmake
  • git clone cd raspicam mkdir build cd build cmake cmake cmake cmake cmake cmake cmake cmake cmake cmake cmake cmake cmake cmake cmake cmake cmake cmake cmake cmake cmake cmake cmake cmake c
  • It will automatically identify whether the OpenCV development files are present and, if necessary, provide support for them.
  • Once that’s done, run make sudo make install sudo ldconfig to build and install it.

That’s all there is to it; Raspicam is now ready for usage in your C++ applications.

In C++, you can control the Raspberry Pi camera.

In C++, here’s a simple example of how to capture a photo using the Raspberry Pi camera:

include include include include <raspicam/raspicam.h> include using namespace std; int main ( int argc,char **argv ) { raspicam::RaspiCam Camera; //Camera object //Open camera cout<<“Opening Camera…”<<endl; if ( ! {cerr<<“Error opening camera”<<endl;return -1;} //wait a while until camera stabilizes cout<<“Sleeping for 3 secs”<<endl; sleep(3); //capture Camera.grab(); //allocate memory unsigned char *data=new unsigned char[ Camera.getImageTypeSize ( raspicam::RASPICAM_FORMAT_RGB )]; //extract the image in rgb format Camera.retrieve ( data,raspicam::RASPICAM_FORMAT_RGB );//get camera image //save std::ofstream outFile ( “raspicam_image.ppm”,std::ios::binary ); outFile<<“P6n”<<Camera.getWidth() <<” “<<Camera.getHeight() <<” 255n”; outFile.write ( ( char* ) data, Camera.getImageTypeSize ( raspicam::RASPICAM_FORMAT_RGB ) ); cout<<“Image saved at raspicam_image.ppm”<<endl; //free resrources delete data; return 0; }

This is nearly completely taken from the GitHub page. On my Raspberry Pi, I corrected a couple items that weren’t working. The original source code may be found at

Remember to include Raspicam in your command line while compiling it, for example: g++ -o camera camera.cpp -lraspicam./camera

The image will be saved in a file called raspicam image.ppm.

GPIO Pins Can Be Controlled

Because the library is already loaded on the Raspberry Pi OS, interacting with the GPIO pins is much simpler. Wiringpi is the name of the library, and the reference material can be found here. Here’s a short rundown on how to get started:

  • If you haven’t previously, enable the GPIO pins on your Raspberry Pi. I’ll go through everything here, and you can return when you’re ready to see some Python code.
  • Then you must put the following in your header: Wiring pi #include
  • Following that, you should be able to utilize all of the functions mentioned in the preceding reference.
  • I tried it with this SunFounder example, and it worked well.


By the way, I have the Sunfounder DaVinci Kit, which comes with a lot of components to utilize with the GPIO pins (LED and wires obviously but also many others fun sensors, motors and buttons). There’s a full tutorial on how to utilize each component, and they explain how to do it in Python and C in each lesson (there’s around 60 of them). That may be a good match if you wish to improve your C and Raspberry Pi skills.

On the Raspberry Pi, there are a variety of text editors to choose from.

I said that you may write C or C++ code on the Raspberry Pi using Nano or Geany, but there are many more editors available. I’ve included a selection of my preferred text editors below, but you may also install a whole IDE if necessary.

Because I mostly write in HTML/PHP or Python, I don’t have much experience with heavier IDEs, but I’m sure you’ll be able to find a method to install your favorite.

Python vs C++: which is better?

All of this is great; programming in C++ on the Raspberry Pi is “possible” and well-supported. Is it, however, a good idea? Why is it that everyone is talking about Python but no one is talking about C++? In this final part, I’ll address your questions regarding it.

Is it simpler to program in C++ or Python?

C++ is a sophisticated language with many strong features, yet it is tough to understand for novices. Python is simpler to learn, has a close resemblance to English, and is excellent for basic programs.

Furthermore, since the Raspberry Pi is based on the Python programming language, all of the libraries are readily accessible (or easy to install). This is a no-brainer option for a novice. Start with Python and then go on to C/C++ after you’ve figured out the rationale behind any code.

By the way, if you feel overwhelmed whenever Python is needed for a project, I suggest reading my e-book “Master Python on Raspberry Pi.” It will take you step by step through learning the most important ideas (and just those concepts) in order to complete any project in the future. Without Python, the Raspberry Pi is like a vehicle without an engine; you lose out on all of the excitement. Get a 10% discount by downloading it right now!

In only 30 days, you’ll have mastered the Raspberry Pi. Today’s sale is 10% off. Get the eBook here. In a 30-day challenge, uncover the mysteries of the Raspberry Pi. Learn valuable Linux skills and put them to work on a variety of projects.

Is C++ on its way out?


C++ is losing popularity over time, according to Google Trends, although it still ranks in the top 10 most used programming languages. C++ is still one of the finest choices for programmers when performance is a priority.

Language Developers are using it.
JavaScript 67.7%
HTML/CSS 63.1%
Python 44.1%
Java 40.2%
C# 31.4%
PHP 26.2%
TypeScript 25.4%
C++ 23.9%
C 21.8%

The most often used programming languages (apart from SQL and bash/PowerShell)

According to the most recent statistics from Statista, web languages and Python are much more popular than C++, although they serve distinct purposes. You won’t write a website, a mobile app, or a graphic driver in the same language.

C and C++ are popular programming languages in schools as well. At school, I recall learning Java, C, and C++. Although they are not the simplest to begin with, it is beneficial to see them in school in order to understand more complicated issues. I assume this is still the case, which explains why so many developers continue to use these languages.

Statistics from GitHub indicate a similar ranking. With a steady (or slightly rising) trend, C++ is among the top ten. So relax: studying C/C++ is not a waste of time.

Python vs C++: one is more in demand?

Python is more in demand than C++, according to Indeed USA. There are now 44,311 Python developer jobs and 15,778 C++ developer jobs available. C++ engineers earn more money than Python developers ($113,561 on average vs. $107,397).

Regardless of your preferred programming language, if you know how to code (and can demonstrate it), you should have no trouble finding work. A skilled programmer can rapidly transition from one language to another. As previously said, begin with Python and then experiment with C++ to attempt something new. However, I don’t believe it will make a significant difference in your career whether one you choose on the Raspberry Pi.

Is Python capable of doing all that C++ can?

Python, as a whole, can do the same tasks as C++. Although there are some minor differences, Python can use C libraries and C can use Python libraries, thus in most situations one language may be replaced by the other.

I won’t get into all the specifics, but keep in mind that C operates at a lower level, thus it’s usually much quicker. Python can suffice if you’re writing a simple script to control your lights at home (as described here), switch on an LED using GPIO, or even do rudimentary motions with a robot kit (my favorites are here). C++, in my opinion, may be helpful for larger projects with many components that must function together, but it should be kept to a minimum.

In summary, Python is best for simple programming such as scripts and small projects, while C++ is often used for bigger applications.

Table of comparisons between C++ and Python on the Raspberry Pi

C++ Python
On a Raspberry Pi, it works perfectly. Suitable for the majority of Raspberry Pi projects
Python is slower than C++. Python has the potential to be slower than C++.
Trends have slowed somewhat. Trends are stable, and it’s more in demand than C++.
Pre-compilation is required. There is no requirement for compilation.
For novices, it is difficult to learn. Beginners will find it simple.

C++ vs Python: Pros & cons

By the way, if you’re searching for Python examples, check out this list of 15 Raspberry Pi Python projects.

Last Thoughts

If you’re confused by all the new terms and acronyms, get my free Raspberry Pi dictionary (PDF format)!

To summarize, C/C++ is an option for the Raspberry Pi if you already have a basic understanding of the language or want to try out larger projects. However, Python will be simpler and quicker to use in most situations, particularly for novices.

I still suggest using Python on your Raspberry Pi (and learning it properly if necessary), since the Raspberry Pi is designed for it, and I assume your objectives aren’t to write the next AAA game or CRM on it, so C++ isn’t required. However, knowing that there is an option is useful if you discover a method to accomplish something in C/C++ but don’t know how to do it in Python.

Resources for the Raspberry Pi

Don’t know where to begin? Learn all there is to know about the Raspberry Pi, stop looking for assistance all the time, and start enjoying your projects. Now you may watch the Raspberry Pi Bootcamp course.

In only 30 days, you’ll have mastered the Raspberry Pi. Don’t want to stick to the basics? This book is for you if you want to learn the best ways to become a Raspberry Pi expert. With step-by-step instructions, you may learn essential Linux skills and perform a variety of tasks. Get the e-book here.

VIP Members’ Club You may also join the Patreon community if you simply want to hang out with me and show your support. I offer you early access to my material and share behind-the-scenes information there. When you join, you’ll also receive a shoutout. More information may be found here. Do you need assistance building anything using Python? Any Python script for your Raspberry Pi may be created, understood, and improved. Learn the fundamentals in a step-by-step manner, rather than wasting time on irrelevant topics. Now is the time to get the e-book.

This website also contains all of my tool and hardware suggestions.

Getting started with programming can be daunting, especially when you’re wanting to get into C++ and building devices with the Raspberry Pi. No one wants to build something that has a million lines of code instead of the hundred or so lines that they’re looking for. C++ is great, because it’s easy to learn, easy to test, and can be used for all sorts of things. In this tutorial, I’ll show you how to get started with C++ on the Raspberry Pi, and how to use the RasPi C++ compiler to get your first app up and running.. Read more about raspberry pi pico tutorial and let us know what you think.

Frequently Asked Questions

How do I program C on Raspberry Pi?

You can use the following commands to program C on Raspberry Pi. sudo apt-get install build-essential cmake git libtool pkg-config cd /usr/src/ mkdir build && cd build cmake .. -DCMAKE_BUILD_TYPE=Release -DBOARD=raspberrypi3 make sudo make install

Can you use C with Raspberry Pi?

Yes, you can use C with Raspberry Pi.

How do you code PI Pico?

PI is the mathematical constant that defines the ratio of a circles circumference to its diameter.

Related Tags

This article broadly covered the following related topics:

  • raspberry pi pico programming
  • raspberry pi pico-examples
  • get started with micropython on raspberry pi pico pdf
  • getting started with raspberry pi pico
  • raspberry pi pico tutorial

Leave a Comment

Your email address will not be published. Required fields are marked *