C++ Libraries and tools

Libraries and tools I use

Selected Libraries

After some years of developing c++ applications, here are some libraries I recommend for beginners to investigate.

  • Standart Template Library (STL): Of course, it’s a must for modern programming. The container classes and algorithms are enough for small projects (you can explore more here).
  • GUI Libraries: there are a lot of c++ Gui Libraries out there, but my preference is FLTK. It is very easy to understand, has some nice widgets, is multiplatform and supports multithreading. If you need more advanced interfaces consider use to QT or WxWidgets.
  • Json Libraries (for messages content): my preference is cJSON. Although it’s a c library, I’ve used it without any problems in some projects.
  • Testing: I choose Google Test for my projects.
  • Web: I use Crow for REST API and Paho MQTT CPP for messaging using websockets and Mqtt.

Tools

  • IDE: when developing in Ubuntu, I choose Vscode(it is just nice). When using Windows, I use the more traditional Code::Blocks, with “CygWin”.
  • Compiler: Currently I use GCC.
  • Compilation tool: CMake. It is a little hard to learn, but after some work, it is very nice. It lets you generate packages and organize your code.
  • Packaging: In Windows, I use CPack, and sometimes InnoSetup. For Linux CPack.
  • Documentation: Doxygen.
  • Dynamic Analysis: Valgrind, it lets you check memory leaks and others issues. I recommend to use it with massif, and the tool Massif-visualizer.
  • Software Versioning: Git.
  • Package Manager: in some projects I’ve used Conan and in other just fetching the libraries with CMake.

Books I have read about c++

The objective of this post is to give the reader the framework that I use so that you can follow the upcoming ones.

Written on August 7, 2024