Skip to main content
Bea_12
Associate II
January 29, 2025
Question

Issue compiling a project in VSCode: can't find main.h

  • January 29, 2025
  • 4 replies
  • 2220 views

Hi everyone,

I’m still having an issue with my STM32F746G-Discovery board. I want to run the program using VSCode, but I’m encountering errors in my main.c file. Specifically, it can't find main.h, and as a result, the code isn’t running.

I want to build and run the code directly in VSCode, but it’s not working as expected. Could it be that the compiler is misconfigured? I’m currently using the GCC compiler for C/C++.

I also switched the toolchain in CubeMX to Makefile. After that, I installed CubeCLT and tried to run and build the code, but nothing happened. 

4 replies

KnarfB
Super User
January 29, 2025

Well, the instructions (from your last topic or STM32 VS Code Extension - Visual Studio Marketplace) work well for me, and many many others. So it must be something specific to your system.

generic help:

  • reinstall from scratch, try on a different system
  • in the beginning, avoid exotic systems like some Linuxes and virtual machines 
  • stick to short & simple path for your project and toolchain: only use ASCII chars in the path, no ümlauts, spaces, special or exotic chars
  • re-read and follow the instructions
  • find a local expert for a second opinion
  • try Rubber duck debugging - Wikipedia

hth

KnarfB

ST Employee
February 12, 2025

This post is related to this conversation: Solved: Main.h is not found - STMicroelectronics Community

Normally VS Code gives you the quick fix method by  adding ${workspaceFolder}/Drivers/CMSIS/Device/ST/STM32F1xx/Include to includePath parameter. 

>>I also switched the toolchain in CubeMX to Makefile

Try following this article: How to use VS Code with STM32 microcontrollers - STMicroelectronics Community

Andrew Neil
Super User
February 12, 2025

@Bea_12 wrote:

Specifically, it can't find main.h,


As stated in your previous thread, if it's not finding the headers, that means your Include Paths need fixing - these are what tell the compiler where to find header files.

So it seems you still haven't fixed that problem?

 

PS:

You haven't said what Host platform you're running on - Windows? Linux? other?

If Linux, remember that it's case-sensitive...

 

PPS:

Another common cause of difficulties is spaces and/or "special" characters in folder names...

 

PPPS:

An article on VSCode Include Paths:

https://labs.dese.iisc.ac.in/embeddedlab/vscode-include-paths/

A complex system that works is invariably found to have evolved from a simple system that worked.A complex system designed from scratch never works and cannot be patched up to make it work.
Explorer
August 5, 2025

 

I have solved similar  problem with intelisense.
Press Ctrl+Shift+P
Edit C/C++ preferences (JSON)
in section defines add 
```
"STM32C011xx", // Change it to your MCU family
"USE_HAL_DRIVER"
```
Might point you right way on compilation too