Table of Contents

Setting up a complete development environment in C++ for Raspberry PI

Intro

I wanted to do some development for the Raspberry PI. So, my first idea is to use c++ for the task, and use it from my laptop, instead of using the ssh and the oldies development environments.

I prefer to use a decent IDE (Eclipse for C++) for the task, and debug remotely from my

So, the objectives are:

  1. To develop in C++ for the Raspberry PI
  2. To do it in eclipse, in my computer
  3. To compile in my computer, and debug remotely in the Raspberry PI
  4. Moreover, to use libraries specifically compiled for the raspberry pi (log4cpp, libconfig)

This setting will configure a development environment optimal for develop and create programs in the raspberry pi.

Previous considerations

Previous tasks I did in my raspberry pi:

  1. Configure other user than pi, and delete the original pi user
  2. Configure static IP

Install eclipse

First, install the Java Runtime Environment by doing:

# sudo apt-get install openjdk-8-jdk

And then, install the eclipse: I've went to http://www.eclipse.org/downloads/ and located Eclipse CDT (specific for development in C/C++) and install it.

Install the cross compiler

The “good” cross compiler is the one that comes in the Raspberry Pi kernel building instructions: reject other recipes that simply are for other boards/architectures (boards with arithmetic coprocesor, and things like that).

As it says in the webpage, can download it at https://github.com/raspberrypi/tools. I've downloaded the tools in ~/tools-master. So, because my linux system is 64 bits, the path for the compiler is in ~/tools-master/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin.

Create your first project in eclipse

Don't forget the path in the previous step, because you will need to create your first hello world project in eclipse.

Let's go for it: first, open eclipse and click on “File → New → C/C++ Project”:

Then, pick up “C++ Managed build” or “C Managed buid”, whichever you prefer. I've chosen C++ Managed build:

Next, I've selected the empty project and, very important, pick up “Cross GCC” to select a cross compiler:

On the screen that appears, you can click on next:

This is the important part: when you have to select the g++ cross compiler. In the previous section I've spotted that and took note of the path and the prefix to use here:

However, if you are unsure which to use, you can try several. A good option is to try to execute the cross compiler to see if it runs: at least it has to execute properly in your computer. At the end, this is a cross compiler, isn't it?

Finally, you will get the project on eclipse:

Then, right-click on new → source file and tye something like this:

/*
 * main.cpp
 *
 *  Created on: 31 mar. 2018
 *      Author: dictinio
 */
 
#include <iostream>
 
int main( int argc, char *argv[] )
{
	std::cout << "hello world!!!" << std::endl;
}

And compile it. At this point it's very important to have some experience with C++ and/or eclipse. It's not the purpose of this tutorial to teach you to use the eclipse IDE, to do that, probably you will have to read other tutorials.

Compile and run

Build the program and copy it to your raspberry: it should run smoothly in the raspi. Obviously, it won't execute locally.

Execute and run in the raspberry pi remotely

Eclipse CDT has facilities to move every build in the raspberry pi and execute it remotely.

NEXT STEP: debug remotely.