cancel
Showing results for 
Search instead for 
Did you mean: 

STM32CubeIde and Error according extern"C"

stefluik
Associate II

I changed an example program for STM32F4 Discovery Board to C++ project.

When compiling the project, there are files included from BSP, which includes a definition:

extern "C".

When compiling the project, the first error is the following:

../../Drivers/BSP/STM32F4-Discovery/stm32f4_discovery.h:25:9: error: expected unqualified-id before string constant

25 | extern "C" {

| ^~~

what is the problem?

Thanks for responsing

5 REPLIES 5

Any effort to prevent repeated inclusion of the same include file?

Closing brace matching?

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..

thanks for the reply.

I cannot see these issues as the problem.

There is only one include and the HAL files are from ST not manipulated.

Stefan

stefluik
Associate II

I think I found the more source of problem:

The code is a .c (C) file and it is compiled with gcc, not g++.

The project is set to C++.

All the HAL files are of course C-files.

But the code is compiled with the #define __cplusplus.

So of course the error pops up.

What is the correct solution?

I think one is to say, all .c files will be compiled with c++ compiler.

Is this correct direction?

Pavel A.
Evangelist III

Is this correct direction?

Short answer: no. 

Conversion of CubeIDE projects to C++ had been discussed here many times, please search. Rather won't start with that again.

Thanks for your reply.

Of course I tried searching. However, searching for C++ is not that easy.
I didn't find anything suitable.


I am very sad that you closed the post like this and no one replied to it or the solution is obviously in another post.


Apparently you are more intelligent than me and are hiding the solution to me and others by simply explaining it here.