Loading...
 

Zephyr project on STM32

   Zephyr Workbench, a VSCode extension to manage Zephyr on STM32.
It enables users to easily create, develop, and debug Zephyr applications.
Main features:
  • Install host dependencies.
  • Import toolchain and SDK.
  • Create, configure, build and manage apps.
  • Debug STM32.
You can directly download it from the VSCode marketplace
For more details, visit the Zephyr Workbench

System Workbench for STM32


How to create a C++ project ? (Cpp project)

Hi everyone,

I’m trying to do a very simple thing : create a Cpp project on ac6/eclipse.
The same question has already been asked in 2016 but has never been answered...

My base project was written in C but I have a Cpp library to use. I haven’t found any solution to use a Cpp lib in a C project, then I tried to convert my base C project into Cpp. But it doesn’t seem to work. I tried to rename my source files into .cpp but syscall.c doesn’t like it at all and my cpp lib is still red about it.

Where I create a new Cpp project, I get a main.c not a main.cpp, why is that? Is there a solution to get a basic Cpp project from ac6?

Thanks in advance for your help.

France

Hi,

You can either convert your existing C project to C++ (by right click on project then “Convert to C++”), or create a new project by choosing “C++ project” instead of “C project”.

However a C++ project is also a C project and the default main.c is still a C file (as are also the ST-provided libraries); you can just rename it as main.cpp (and correct it as it may not be a valid C++ file if you added incompatible C code). You can also include new C++ files in your project and they will be compiled by the C++ compiler; however, don’t forget to declare the functions that must be called from C code as extern "C"

The main difference is that the linker will use the C++ linker, even if you only include C files; note that if your C++ code must include C-compatible header files, these must, typically in a #ifdef c_plusplus section declare all C functions as extern "C".

For example you can start your C header files by

#ifdef c_plusplus
extern "C" {
#endif
and terminate them by
#ifdef c_plusplus
};
#endif


HTH

Bernard (Ac6)


Thanks Bernard for your answer. It is very helpful.
I cannot know if it works yet because I think I first have to fix my external library issue. I’ll post another question in the forum about it.


 

Newest Forum Posts

  1. Provides its users with guidance and responses by ClaudiaAlgof, 2026-03-31 21:55
  2. I2S DMA Audio stuttering/repeating snippets on STM32G071RB by fillnether, 2026-03-17 19:06
  3. Unable to build project by septimusbob, 2026-02-08 20:27
  4. New installations is now uploaded ! by karushifa, 2025-12-25 00:53
  5. Analog servomotors with nucleo f334r8 by SkelePaw, 2025-11-01 05:57
  6. STM32 MCU model shortlisting for Making RC remote by Palvish, 2025-07-07 15:05
  7. SPI on Nucleo_STMH533RE by royjamil, 2025-05-04 20:13
  8. SPI on Nucleo_STMH533RE by higginsa1, 2025-03-25 07:37
  9. SPI on Nucleo_STMH533RE by royjamil, 2025-03-23 11:31
  10. SPI on Nucleo_STMH533RE by higginsa1, 2025-03-23 09:33

Last-Modified Blogs