This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

C++, works maybe?

I put a simple class in a file named "test.h". The class is as follows:

class a {
public: int b;
};

I am using the Keil MCBSTM32 board (STM32F103RB processor).

I place this file in "C:\Keil\ARM\Boards\Keil\MCBSTM32\Timer". I then open the timer project.

If I include the file in timer.c I get the following error:


Build target 'MCBSTM32'
compiling Timer.c...
test.h(2): error: #20: identifier "class" is undefined
test.h(2): error: #65: expected a ";"
Target not created

Why does it give me an error? I thought the compiler ssuported C++?

Parents
  • As far as I could determine the Manual or nothing I was able to locate with a search in this forum said anything on C++ compilation, therefore the question. I did not realize that there was a possibility that the extension had anything to do with the compilers ability to recognise C++. I have worked with compilers where you could intermix C and C++ in ".c" file. Most of the time I have worked exclusively in either C or C++. I must admit, I have never tried this particular scenario.

    <sigh> I am not trying to be curt, but if I have any information on any subject, I am happy to share it. Some of us are pressured to be productive on day one and any delay will put us closer to the unemployment line. I am sorry if I offend some people by asking questions that may be in a manual. Before asking I do look to see if I can find an answer on my own. I ask publicly when I have reached a point where I feel I have spent too much time searching.

Reply
  • As far as I could determine the Manual or nothing I was able to locate with a search in this forum said anything on C++ compilation, therefore the question. I did not realize that there was a possibility that the extension had anything to do with the compilers ability to recognise C++. I have worked with compilers where you could intermix C and C++ in ".c" file. Most of the time I have worked exclusively in either C or C++. I must admit, I have never tried this particular scenario.

    <sigh> I am not trying to be curt, but if I have any information on any subject, I am happy to share it. Some of us are pressured to be productive on day one and any delay will put us closer to the unemployment line. I am sorry if I offend some people by asking questions that may be in a manual. Before asking I do look to see if I can find an answer on my own. I ask publicly when I have reached a point where I feel I have spent too much time searching.

Children
  • I did not realize that there was a possibility that the extension had anything to do with the compilers ability to recognise C++.

    As already pointed out, often a toolchain will make the decision whether to compile code as 'C' or 'C++' based on the extension as a default. I'm not familiar with the ARM toolchain, but you may well find that there is an option (probably available in the project options as well as a command line switch) to select 'C' or 'C++' compilation on a per-file basis, irrespective of extension.

  • but you may well find that there is an option (probably available in the project options as well as a command line switch)

    Absolutely. As mentioned before, the

    -cpp
    

    and

    -c90
    

    compiler switches for the RealView compiler.