2024-12-28 03:39 PM
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
2024-12-29 09:30 AM
Any effort to prevent repeated inclusion of the same include file?
Closing brace matching?
2024-12-30 12:24 AM
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
2024-12-30 04:59 AM
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?
2024-12-30 10:48 AM
> 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.