I have added the code from this repo as a library in my project. I can include the header files, call the functions view the sources etc. When it comes to building it seems I am having version issues.
From my generated SDK I get
michael@michael-VirtualBox:~/Documents/MAIN_Application/build-fb$ source /opt/fsl-imx-fb/5.10-hardknott/environment-setup-cortexa7t2hf-neon-poky-linux-gnueabi
michael@michael-VirtualBox:~/Documents/MAIN_Application/build-fb$ arm-poky-linux-gnueabi-gcc --version
arm-poky-linux-gnueabi-gcc (GCC) 10.2.0
Copyright (C) 2020 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
When building the code from the repo using cmake -DCMAKE_BUILD_TYPE=Release .. The first two lines tell me
-- The C compiler identification is GNU 9.4.0
-- The CXX compiler identification is GNU 9.4.0
This matches the gcc version from Ubuntu
michael@michael-VirtualBox:~/Documents$ gcc --version
gcc (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
This leads me to believe my version of the C++ compiler is above what is needed and that this compilation should work. When I include a header file from this library I get the error.
Building file: ../src/main.cpp
Invoking: Cross G++ Compiler
arm-poky-linux-gnueabi-gcc -mthumb -mfpu=neon -mfloat-abi=hard -mcpu=cortex-a7 -fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security --sysroot=/opt/fsl-imx-fb/5.10-hardknott/sysroots/cortexa7t2hf-neon-poky-linux-gnueabi -DLINUX -D__X86_VERSION__ -D_REENTRANT -I"/home/michael/Documents/MAIN_Application/MAIN_layers/meta-MAINapplication/recipes-core/MAIN_Application/files/MAIN_Application/vendor/lumissil/production/source/lib/FFT" -I"/home/michael/Documents/MAIN_Application/MAIN_layers/meta-MAINapplication/recipes-core/MAIN_Application/files/MAIN_Application/include/CML_Integration" -I"/home/michael/Documents/MAIN_Application/MAIN_layers/meta-MAINapplication/recipes-core/MAIN_Application/files/MAIN_Application/include" -I"/home/michael/Documents/MAIN_Application/MAIN_layers/meta-MAINapplication/recipes-core/MAIN_Application/files/MAIN_Application/include/comms" -I"/home/michael/Documents/MAIN_Application/MAIN_layers/meta-MAINapplication/recipes-core/MAIN_Application/files/MAIN_Application/include/comms/CAN" -I"/home/michael/Documents/MAIN_Application/MAIN_layers/meta-MAINapplication/recipes-core/MAIN_Application/files/MAIN_Application/include/comms/PLC" -I"/home/michael/Documents/MAIN_Application/MAIN_layers/meta-MAINapplication/recipes-core/MAIN_Application/files/MAIN_Application/include/config_parsing" -I"/home/michael/Documents/MAIN_Application/MAIN_layers/meta-MAINapplication/recipes-core/MAIN_Application/files/MAIN_Application/include/utilities" -I"/home/michael/Documents/MAIN_Application/MAIN_layers/meta-MAINapplication/recipes-core/MAIN_Application/files/MAIN_Application/vendor/carmedialab/SMG/trunk/ISO15118_Stack/sources/v2g/ApiV2g/ev" -I"/home/michael/Documents/MAIN_Application/MAIN_layers/meta-MAINapplication/recipes-core/MAIN_Application/files/MAIN_Application/vendor/carmedialab/SMG/trunk/ISO15118_Stack/sources/common/net" -I"/home/michael/Documents/MAIN_Application/MAIN_layers/meta-MAINapplication/recipes-core/MAIN_Application/files/MAIN_Application/vendor/carmedialab/SMG/trunk/TmCommon/sources/CmlCommon" -I"/home/michael/Documents/MAIN_Application/MAIN_layers/meta-MAINapplication/recipes-core/MAIN_Application/files/MAIN_Application/vendor/carmedialab/SMG/trunk/TmCommon/sources/DccCommon" -I"/home/michael/Documents/MAIN_Application/MAIN_layers/meta-MAINapplication/recipes-core/MAIN_Application/files/MAIN_Application/vendor/carmedialab/SMG/trunk/ISO15118_Stack/sources/common/msg" -I"/home/michael/Documents/MAIN_Application/MAIN_layers/meta-MAINapplication/recipes-core/MAIN_Application/files/MAIN_Application/vendor/carmedialab/SMG/trunk/ISO15118_Stack/sources/canLogger" -I"/home/michael/Documents/MAIN_Application/MAIN_layers/meta-MAINapplication/recipes-core/MAIN_Application/files/MAIN_Application/vendor/carmedialab/SMG/trunk/ISO15118_Stack/sources/common/configuration/ev" -I"/home/michael/Documents/MAIN_Application/MAIN_layers/meta-MAINapplication/recipes-core/MAIN_Application/files/MAIN_Application/vendor/carmedialab/SMG/trunk/ISO15118_Stack/sources/EV" -I"/home/michael/Documents/MAIN_Application/MAIN_layers/meta-MAINapplication/recipes-core/MAIN_Application/files/MAIN_Application/vendor/carmedialab/SMG/trunk/ISO15118_Stack/sources/EV/state" -I"/home/michael/Documents/MAIN_Application/MAIN_layers/meta-MAINapplication/recipes-core/MAIN_Application/files/MAIN_Application/vendor/carmedialab/SMG/trunk/ISO15118_Stack/sources/EV/state/dc" -I"/home/michael/Documents/MAIN_Application/MAIN_layers/meta-MAINapplication/recipes-core/MAIN_Application/files/MAIN_Application/vendor/carmedialab/SMG/trunk/ISO15118_Stack/sources/EV/model/Generic" -I"/home/michael/Documents/MAIN_Application/MAIN_layers/meta-MAINapplication/recipes-core/MAIN_Application/files/MAIN_Application/vendor/carmedialab/SMG/trunk/ISO15118_Stack/sources/common/configuration" -I"/home/michael/Documents/MAIN_Application/MAIN_layers/meta-MAINapplication/recipes-core/MAIN_Application/files/MAIN_Application/vendor/carmedialab/SMG/trunk/ISO15118_Stack/sources/common" -I"/home/michael/Documents/MAIN_Application/MAIN_layers/meta-MAINapplication/recipes-core/MAIN_Application/files/MAIN_Application/vendor/carmedialab/SMG/trunk/ISO15118_Stack/sources/EV/net" -I"/home/michael/Documents/MAIN_Application/MAIN_layers/meta-MAINapplication/recipes-core/MAIN_Application/files/MAIN_Application/vendor/carmedialab/SMG/trunk/ISO15118_Stack/sources/common/states" -I"/home/michael/Documents/MAIN_Application/MAIN_layers/meta-MAINapplication/recipes-core/MAIN_Application/files/MAIN_Application/vendor/carmedialab/SMG/trunk/ISO15118_Stack/sources/EVVisitor" -I"/home/michael/Documents/MAIN_Application/MAIN_layers/meta-MAINapplication/recipes-core/MAIN_Application/files/MAIN_Application/vendor/carmedialab/SMG/trunk/ISO15118_Stack/sources/v2g/xmldsig" -I"/home/michael/Documents/MAIN_Application/MAIN_layers/meta-MAINapplication/recipes-core/MAIN_Application/files/MAIN_Application/vendor/carmedialab/SMG/trunk/ISO15118_Stack/sources/v2g/appHandshake" -I"/home/michael/Documents/MAIN_Application/MAIN_layers/meta-MAINapplication/recipes-core/MAIN_Application/files/MAIN_Application/vendor/carmedialab/SMG/trunk/ISO15118_Stack/sources/v2g/iso1" -I"/home/michael/Documents/MAIN_Application/MAIN_layers/meta-MAINapplication/recipes-core/MAIN_Application/files/MAIN_Application/vendor/carmedialab/SMG/trunk/ISO15118_Stack/sources/v2g/iso2" -I"/home/michael/Documents/MAIN_Application/MAIN_layers/meta-MAINapplication/recipes-core/MAIN_Application/files/MAIN_Application/vendor/carmedialab/SMG/trunk/ISO15118_Stack/include" -I"/home/michael/Documents/MAIN_Application/MAIN_layers/meta-MAINapplication/recipes-core/MAIN_Application/files/MAIN_Application/vendor/carmedialab/SMG/trunk/ISO15118_Stack/sources/v2g/codec" -I/opt/fsl-imx-fb/5.10-hardknott/sysroots/cortexa7t2hf-neon-poky-linux-gnueabi/usr/include -I"/home/michael/Documents/MAIN_Application/MAIN_layers/meta-MAINapplication/recipes-core/MAIN_Application/files/MAIN_Application/vendor/lumissil/host/source/lib/comm_mgr/inc" -I"/home/michael/Documents/MAIN_Application/MAIN_layers/meta-MAINapplication/recipes-core/MAIN_Application/files/MAIN_Application/vendor/lumissil/host/source/lib/mem_pool/inc" -I"/home/michael/Documents/MAIN_Application/MAIN_layers/meta-MAINapplication/recipes-core/MAIN_Application/files/MAIN_Application/vendor/lumissil/host/source/lib/osal/inc" -I"/home/michael/Documents/MAIN_Application/MAIN_layers/meta-MAINapplication/recipes-core/MAIN_Application/files/MAIN_Application/vendor/lumissil/public/production" -I"/home/michael/Documents/MAIN_Application/MAIN_layers/meta-MAINapplication/recipes-core/MAIN_Application/files/MAIN_Application/vendor/lumissil/public/common" -I"/home/michael/Documents/MAIN_Application/MAIN_layers/meta-MAINapplication/recipes-core/MAIN_Application/files/MAIN_Application/vendor/lumissil/public/host" -O0 -O -g3 -Wall -c -fmessage-length=0 --sysroot=/opt/fsl-imx-fb/5.10-hardknott/sysroots/cortexa7t2hf-neon-poky-linux-gnueabi -MMD -MP -MF"src/main.d" -MT"src/main.o" -o "src/main.o" "../src/main.cpp"
In file included from /opt/fsl-imx-fb/5.10-hardknott/sysroots/cortexa7t2hf-neon-poky-linux-gnueabi/usr/include/dbcppp/Attribute.h:8,
from /opt/fsl-imx-fb/5.10-hardknott/sysroots/cortexa7t2hf-neon-poky-linux-gnueabi/usr/include/dbcppp/Node.h:10,
from /opt/fsl-imx-fb/5.10-hardknott/sysroots/cortexa7t2hf-neon-poky-linux-gnueabi/usr/include/dbcppp/Signal.h:11,
from /opt/fsl-imx-fb/5.10-hardknott/sysroots/cortexa7t2hf-neon-poky-linux-gnueabi/usr/include/dbcppp/SignalType.h:8,
from /opt/fsl-imx-fb/5.10-hardknott/sysroots/cortexa7t2hf-neon-poky-linux-gnueabi/usr/include/dbcppp/ValueTable.h:9,
from /opt/fsl-imx-fb/5.10-hardknott/sysroots/cortexa7t2hf-neon-poky-linux-gnueabi/usr/include/dbcppp/Network.h:15,
from ../src/main.cpp:15:
/opt/fsl-imx-fb/5.10-hardknott/sysroots/cortexa7t2hf-neon-poky-linux-gnueabi/usr/include/dbcppp/AttributeDefinition.h:48:35: error: ‘variant’ in namespace ‘std’ does not name a template type
48 | using value_type_t = std::variant<ValueTypeInt, ValueTypeHex, ValueTypeFloat, ValueTypeString, ValueTypeEnum>;
| ^~~~~~~
/opt/fsl-imx-fb/5.10-hardknott/sysroots/cortexa7t2hf-neon-poky-linux-gnueabi/usr/include/dbcppp/AttributeDefinition.h:48:30: note: ‘std::variant’ is only available from C++17 onwards
48 | using value_type_t = std::variant<ValueTypeInt, ValueTypeHex, ValueTypeFloat, ValueTypeString, ValueTypeEnum>;
| ^~~
/opt/fsl-imx-fb/5.10-hardknott/sysroots/cortexa7t2hf-neon-poky-linux-gnueabi/usr/include/dbcppp/AttributeDefinition.h:53:15: error: ‘value_type_t’ has not been declared
53 | , value_type_t&& value_type);
| ^~~~~~~~~~~~
/opt/fsl-imx-fb/5.10-hardknott/sysroots/cortexa7t2hf-neon-poky-linux-gnueabi/usr/include/dbcppp/AttributeDefinition.h:60:23: error: ‘value_type_t’ does not name a type
60 | virtual const value_type_t& ValueType() const = 0;
| ^~~~~~~~~~~~
In file included from /opt/fsl-imx-fb/5.10-hardknott/sysroots/cortexa7t2hf-neon-poky-linux-gnueabi/usr/include/dbcppp/Node.h:10,
from /opt/fsl-imx-fb/5.10-hardknott/sysroots/cortexa7t2hf-neon-poky-linux-gnueabi/usr/include/dbcppp/Signal.h:11,
from /opt/fsl-imx-fb/5.10-hardknott/sysroots/cortexa7t2hf-neon-poky-linux-gnueabi/usr/include/dbcppp/SignalType.h:8,
from /opt/fsl-imx-fb/5.10-hardknott/sysroots/cortexa7t2hf-neon-poky-linux-gnueabi/usr/include/dbcppp/ValueTable.h:9,
from /opt/fsl-imx-fb/5.10-hardknott/sysroots/cortexa7t2hf-neon-poky-linux-gnueabi/usr/include/dbcppp/Network.h:15,
from ../src/main.cpp:15:
/opt/fsl-imx-fb/5.10-hardknott/sysroots/cortexa7t2hf-neon-poky-linux-gnueabi/usr/include/dbcppp/Attribute.h:16:30: error: ‘variant’ in namespace ‘std’ does not name a template type
16 | using value_t = std::variant<int64_t, double, std::string>;
| ^~~~~~~
/opt/fsl-imx-fb/5.10-hardknott/sysroots/cortexa7t2hf-neon-poky-linux-gnueabi/usr/include/dbcppp/Attribute.h:16:25: note: ‘std::variant’ is only available from C++17 onwards
16 | using value_t = std::variant<int64_t, double, std::string>;
| ^~~
I am creating a custom image using the NXP Yocto Image as a base. I have build off of core-image-minimal.bb.
Looking up one of the errors I can see that std::variant was added in C++17. I am wondering if there is a way to modify my project to use a newer version of C++. If I even need a newer version.