Skip to main content
Explorer
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. 

    This topic has been closed for replies.

    4 replies

    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

    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/

    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