cancel
Showing results for 
Search instead for 
Did you mean: 

STM32CubeIde and Error according extern"C"

stefluik
Associate

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

4 REPLIES 4

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

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.