Problems with libstdc++ (GLIBCXX_3.4.21 not found)

Hello all,

Few months ago I developed a project for my past school using the Navio2 shield and the Raspbian image provided. It was a drone project that we developed our own control algorithms, and used the classes provided in the examples to interact with the sensors.

My former advisor contacted me because they started building a new drone but they had problems with the new image of Raspbian. Once he starts the software, the following error appears:

/usr/lib/arm-linux-gnueabihf/libstdc++.so.6: version GLIBCXX_3.4.21 not found

Sorry for not providing more information, but I am not at school anymore (graduated) and dont have access to the computer. Here are few things I know:

  • The software executes perfectly on the image from December 2016
  • It does not run on the current image (June 2017)
  • The software is an abstraction layer to the following sensors: GPS, Barometer, and IMU.

Has anyone faced similar problems? Was there changes on the libstdc++ version between this images? Any ideas/suggestions?

Thank you very much,
Dante

I guess all problems will go away as soon as you rebuild you software on current image. What kind of software are we talking about?

Hello George, thanks for the response.

For research purposes I developed a simple drone auto-pilot from scratch. It consists of a multi-process environment and all the inter-process communication is done through message queues.

The process that it is not running, should perform the following activities:

1- A thread periodically reads data from GPS, IMU, Barometer and stores on a structure.
2- Another thread waits from a message from another process and answers with the latest data (GPS, IMU, Barometer) available. Mutual exclusion is done through mutexes.
3- A third thread periodically sends heart-beat messages to a watch-dog process.

To read from the sensors I used the classes provided on the examples.

All of the software was developed on a cross-development environment (Ubuntu), using arm-linux-gnueabihf-gcc and following this tutorial:
http://www.hertaville.com/development-environment-raspberry-pi-cross-compiler.html

The binaries execute perfect on the older image, but on the new one this specific software complains about GLIBCXX_3.4.21 .

Any suggestions?
Thanks again,
Dante

Hi, just wanted to follow up on this for reference. I am one of the students now working on Dante’s former project. I believe I have identified the cause of this issue or at least was able to resolve it.

I went through the cross-compiler toolchain tutorial above, and noticed that the toolchain commands the tutorial helps setup were being shadowed by one from the package manager on our machine (apt). After removing the toolchain installed by the package manager, we refreshed our project files to point to the libraries in the toolchain the tutorial was recommending, and were able to run Dante’s software on the most recent Jessie image (20170323).