Can't compile C++ code, unknown type name 'namespace' in std library?
I am trying to evaluate CrossWorks for an STM32 application (STM32L152RE if it matters).
My working code was exported from the mbed environment using their export for GccARM toolchain option. I then started from a blank template project for STM32 and then manually added in the .c source files. I modified the preprocessor options to point to my necessary includes.
When I try to build, I get the error: "unknown type name 'namespace'", which is in a Rowley Crossworks library file, <stddef>
namespace std
{
using ::ptrdiff_t;
using ::size_t;
}
Googling around, it seems like this user had the same issue. http://stackoverflow.com/questions/13602249/how-to-fix-error-unknown-type-name-namespace
And the answer for him was that he was using a C compiler instead of C++.
From CrossWorks website it sounds like the gcc compiler supports both C/C++. I don't see any project options to choose another compiler (they mentioned g++ instead of gcc). I have just gcc and Clang options, and both die on the same error.
What do I need to do to compile C++ code? This code compiles in the mbed environment. Or is my error something else (and a poorly worded error message)?
Thanks,
Joel
Please sign in to leave a comment.
Comments
2 comments