Develop a native C++ library on an Arm-based machine
Introduction
Laying the foundations
Test the library
Start coding
Implement matrix operations
Next Steps
Develop a native C++ library on an Arm-based machine
Who is this for?
This is an advanced topic for developers who want to learn how to develop a library in modern C++ on Arm, using matrix processing as an example.
What will you learn?
Upon completion of this Learning Path, you will be able to:
- Develop a new C++ library.
- Test a C++ library, ensuring it does not regress functionally.
Prerequisites
Before starting, you will need the following:
- An Arm-based computer running Linux, macOS, or Windows.
- An intermediate understanding of C++ programming.
- A suitable Integrated Development Environment (IDE).
- The CMake build tool.
- A C++ compiler with C++17 support.
- A build system GNU Make or Ninja .
- A documentation generator Doxygen .
Summary
This summary was drafted with an approved AI-assisted workflow and reviewed by Arm contributors before publication. Human technical review remains part of the process so the final page reflects engineering rigor, accuracy, and Arm editorial standards.
You’ll build and test a modern C++ matrix library on an Arm-based machine with CMake and GoogleTest. First, you’ll configure a C++17 toolchain and add unit tests. Then, you’ll implement matrix construction, assignment, addition, subtraction, and multiplication, keeping traversal separate from data processing. You’ll choose a build system and balance error checking with performance before validating the library with consistent builds and passing tests.
Frequently asked questions
These FAQs were drafted with an approved AI-assisted workflow and reviewed by Arm contributors before publication. Human technical review remains part of the process so the final page reflects engineering rigor, accuracy, and Arm editorial standards.
Use a compiler with C++17 support. Both Clang and GCC work for this Learning Path.
Either GNU Make or Ninja works with CMake. Choose one and use it consistently across builds.
Expect the project to build successfully, and the unit tests to run without failures. At this stage, you can construct, assign, and print
Matrix objects.Implement addition, subtraction, and multiplication. Keep traversal separate from data processing so you can compose functionality and test components independently.
Balance safety and performance for your use case. Trusted, curated data can use different checks from untrusted input, so choose the validation level accordingly.