extern "C" { #include <stdio.h> #include <stdlib.h> } #include <string> /********************************************************************* * * main() * * Function description * Application entry point. */ void main(void) { int i; for (i = 0; i < 100; i++) { printf("Hello World %d!\n", i); } do { i++; } while (1); }
I am in the process of building software to drive a bare metal widget based on the nrf52840 - currently against the DK board. We have an in-house abstraction interface layer that goes between the hardware specific code and the user facing app. This s in c++. When I compile this I get error: template with C linkage in the library files i am trying to use. I have reproduced the issue in the simple example code that ses starts with. The errors are:
Compiling 'main.cpp' 1> In file included from /usr/include/newlib/c++/6.3.1/bits/stringfwd.h:40:0, 1> from /usr/include/newlib/c++/6.3.1/string:39, 1> from /home/paulc/Documents/SEGGER Embedded Studio for ARM Projects/Executable_1/main.cpp:53: 1> /usr/include/newlib/c++/6.3.1/bits/memoryfwd.h:63:3: error: template with C linkage 1> /usr/include/newlib/c++/6.3.1/bits/memoryfwd.h:66:3: error: template specialization with C linkage 1> /usr/include/newlib/c++/6.3.1/bits/memoryfwd.h:70:3: error: template with C linkage
my environment is:
- linux mint/ubuntu bionic/tara
- libnewlib-arm-none-eabi
- gcc-arm-none-eabi
- SES 3.4
i am not a c++ developer but rather a rusty c developer.
Any suggestions would be most welcome
Cheers Paul