Tools for C++ Development
1.1.Source Control Tools:
- GitHub – allows for unlimited public repositories, must pay for a private repository.
Bitbucket – allows for unlimited private repositories with up to 5 collaborators, for free.
SourceForge – open source hosting only.
GitLab – allows for unlimited public and private repositories, unlimited CI Runners
included, for free.
Visual Studio Online – allows for unlimited public repositories, must pay for private repository
- Use an industry standard widely accepted build tool. This prevents you from reinventing the wheel whenever you discover / link to a new library / package your product / etc. Some examples are CMake, Conan, FASTBuild, CPPAN, Ninja, etc.
1.3.Continuous Integration Tools
- Continuous Integration (CI) tools automatically build the source code as changes are pushed to the repository.
- Travis CI : works well with C++. Designed for use with GitHub. Free for public repositories on GitHub.
- AppVeyor : Supports Windows, MSVC and MinGW, Free for public repositories on GitHub.
- Hudson CI / Jenkins CI : Java Application Server is required supports Windows, OS X, and Linux extendable with a lot of plugins.
- Visual Studio Online : Tightly integrated with the source repositories from VisStudio Online
- Use every available and reasonable set of warning options. Some warning options only work with optimizations enabled, or work better the higher the chosen level of optimization is, for example -Wnull-dereference with GCC.
You should use as many compilers as you can for your platform(s). Each compiler implements the standard slightly differently and supporting multiple will help ensure the most portable, most reliable code.
- Use the static analyzer to run as part of your automated build system. Cppcheck and clang tools could meet the requirement as free tools.
- Memory usage validators: Runtime code analyzer that can detect memory leaks, race conditions, and other associated problems. Some of the good tools are Valgrind, Dr Memory, etc.
Code Coverage Analysis : A coverage analysis tool shall be run when tests are executed to make sure the entire application is being tested. Some of the good tools are Codecov, Coveralls, LCOV etc.
- Make sure whatever build system you use has a way to execute tests built in. To further aid in executing tests, consider a library such as Google Test, Catch, CppUTest or Boost.Test to help you organize the tests.
Whenever there is a need for performance driven enterprise class product development, C++ is widely recognized as a choice by default. Variety of applications use C++ programming, and at OdiTek we have a pool of vastly experienced CPP developers. We will be happy to assist you to plan & do product development, drop us an email on firstname.lastname@example.org