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++
- Marius Bancila,“Modern c++ Progamming Cookbook”: I have the second edition, it has a lot of examples and tips that help to use c++ in an effective manner.
- Bjarne Stroustrup, “A tour of C++”: Currently reading it. Very compact, right to the point book.
- Bjarne Stroustrup, “Programming, Principles and practices using c++”: It’s a general programming book. Coming from the embedded field, it shows me a lot of good practices.
- Eric Gamma et al,“Patrones de diseño”: Spanish version of the classic book “Design patterns”.
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