SW4STM32 and SW4Linux fully supports the STM32MP1 asymmetric multicore Cortex/A7+M4 MPUs

   With System Workbench for Linux, Embedded Linux on the STM32MP1 family of MPUs from ST was never as simple to build and maintain, even for newcomers in the Linux world.
And, if you install System Workbench for Linux in System Workbench for STM32 you can seamlessly develop and debug asymmetric applications running partly on Linux, partly on the Cortex-M4.
You can get more information from the ac6-tools website and download two short videos (registration required) highlighting:

System Workbench for STM32

SystemWorkbench : when basic user expectation are not met at all

For a C++ project, create the project with CubeMX _then_ use SW4STM32 to load the project.
You can then right click on the project, in contextual menu choose “New”:”Convert to a C++ Project”.

Be careful not to use C++include files in C compilation units or it will fail - there are several posts here by myself and others on how this results in the kind of include files errors you mention. Understand how to use extern “C” to make sure you have right symbol naming for linking C++ functions into C compilation units.
The bulk of the STM32 resources will not compile as C++ although they are C++ aware and friendly (again, extern “C”) - you can use the HAL code from C++ easily but you can’t compile it with the C++ compiler.

It works, I do it every day for a living...