How to Install C++ 17 on Linux

In this tutorial, we will show you how to quickly install C++ 17 and specify it during compilation.
Captain Salem 2 min read
How to Install C++ 17 on Linux

C++17, also known as "ISO/IEC 14882:2017," is a version of the C++ programming language. It is the successor to C++14 and was standardized by the International Organization for Standardization (ISO) in 2017.

C++17 introduces several new features and improvements to the language, aiming to make C++ code more expressive, concise, and efficient. Some of the key additions and enhancements in C++17 include:

  1. Structured Bindings - Allows unpacking of structured types (such as tuples or arrays) into individual variables using a more concise syntax.
  2. if/switch with Initialization - Allows variables to be defined and initialized within the condition of if and switch statements.
  3. constexpr if - Introduces compile-time conditional statements, enabling selective compilation of code based on constexpr conditions.
  4. Inline Variables - Enables the definition of variables inside a class definition, making it easier to define constants or small utility objects.
  5. Range-based for loop with initializer - Allows the initialization of the loop variable directly within the range-based for loop.
  6. Fold Expressions - Simplifies the handling of variadic templates by providing a concise syntax for operations such as folding a parameter pack with a binary operator.
  7. Structured Attributes - Adds attributes to enable structured bindings and other constructs to be used with standard attributes like nodiscard and fallthrough.
  8. Parallel Algorithms - Introduces standard parallel algorithms to leverage multi-core processors efficiently.
  9. Filesystem Library - Provides a standardized library for file system operations, including file and directory manipulation, path handling, and file metadata.
  10. Standardized Attributes - Adds new standard attributes, like maybe_unused, nodiscard, and fallthrough, to improve code clarity and maintainability.

These are just a few of the new features and enhancements introduced in C++17. The goal of C++17 was to improve developer productivity, enhance the language capabilities, and provide more straightforward and safer ways to write C++ code.

Install C++ 17 on Linux

To install C++17 on Linux, you need to ensure that you have a compatible compiler. Here's a step-by-step guide to installing C++17 on Linux using the GNU Compiler Collection (GCC):

Update Package Manager - Open a terminal and update your package manager to ensure you have the latest package information:

sudo apt update

Install GCC - If you haven't installed GCC already, you can install it using the following command:

sudo apt install build-essential

Check GCC Version: Verify that GCC is installed and check the version by running:

g++ --version

Ensure that the version displayed is 7 or later.

If an older version is installed, you may need to update your Linux distribution or manually install a newer version of GCC.

Install C++17 Support - By default, recent versions of GCC support C++17. However, you may need to specify the C++17 standard explicitly while compiling. To do this, add the -std=c++17 flag to your compiler commands.

For example, to compile a C++ source file named example.cpp with C++17 support, use the following command:

g++ -std=c++17 -o example example.cpp

Replace example.cpp with the actual filename of your C++ source code. The -o flag specifies the output filename (in this case, example).

Compile and Run C++17 Programs: With the -std=c++17 flag set, you can now compile and run C++17 programs using the GCC compiler. For example, if you have a file named example.cpp, you can compile and run it as follows:

g++ -std=c++17 -o example example.cpp

Replace example.cpp with the actual filename of your C++ source code.


That's it! You have installed C++17 support and can now compile and run C++ programs using the C++17 standard on Linux.

More from GeekBits

Join us at GeekBits

Join our members and get a currated list of awesome articles each month.

Great! You’ve successfully signed up.

Welcome back! You've successfully signed in.

You've successfully subscribed to GeekBits.

Success! Check your email for magic link to sign-in.

Success! Your billing info has been updated.

Your billing was not updated.