Yocto project C++ version

Viewed 154

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.

0 Answers
Related