Skip to main content
Associate III
September 3, 2024
Question

files not being recognized if inside folder

  • September 3, 2024
  • 2 replies
  • 939 views

I will attach my project below if you want the code for reference.

         I am making a HMI for construction workers for reference. Although my screen does everything I've needed thus far it has been hard to organize my code because I keep running into the error of "No such file or directory" when I begin to go from a large file into a more organized file. 

         Due to the nature of my project I do not know if the BSP.h file is generated for everyone. So I will try to be as general as possible. I want to take a function in a file found in Code/Inc/#organizedFileName# I want to include and run this function in a View.cpp file found in, TouchGFX/gui/src/#screenName#. When I leave the file in Code/Inc/#organizedFileName# I get the error "No such file or directory". When I take the file out into Code/Inc I do not get this error. My knowledge tells me it's a compilation path issue but I do not know how to fix that. For now I have been running most variable and function declaration through main.h(THIS IS NOT A GOAL OF MINE). Once I can fix this path issue I want to clean up my code. 

        Any advice and knowledge would be greatly appreciated. 

        Code in drop box https://www.dropbox.com/home 

    2 replies

    Andrew Neil
    Super User
    September 3, 2024

    Have you correctly set your 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.
    tmehokAuthor
    Associate III
    September 3, 2024

    I think I have set it correctly, I do #include "main.h" for example and that will work. For this specific file I called it #include bsp.h and that gave me an error only when it was in a level deeper than Core/Inc. If it is in Core/Inc/BSP it will not be recognized. I event did the whole path to make sure by doing #include <Core/Inc/BSP/bsp.h>. I attempted to substitute the < for a ", that did not work either. Does this have anything to do with whatever directory is supposed to be higher than Core?

    Andrew Neil
    Super User
    September 4, 2024

    @tmehok wrote:

     I called it #include bsp.h and that gave me an error only when it was in a level deeper than Core/Inc.


    That means you need to add that folder (the one beneath Core/Inc) to your Include Paths.

    The easiest way to do that is to right-click the folder in the IDE's Project Explorer, and choose 'Add/remove include path...'

    You need to ensure that every folder which contains any header file(s) is included in your Include Paths:

    https://community.st.com/t5/stm32-mcus/how-to-implement-a-usb-device-composite-in-stm32h5/ta-p/708078#:~:text=After%20doing%20that%2C%20we%20must%20configure%20the%20compiler%20to%20find%20all%20the%20include%20files.%20For%20that%2C%20right%2Dclick%20over%20all%20the%20folders%20called%20%E2%80%9CInc%E2%80%9D%20then%20go%20to%20Add/remove%20include%20path%E2%80%A6

     

    Addendum:

    This concept of "Include Paths" is common across (pretty much) all C IDEs - it's not specific to STM32CubeIDE or even Eclipse; eg, see:

    https://devzone.nordicsemi.com/f/nordic-q-a/46716/simple-adc-code/184681

     

    #IncludePaths #IncludePath

    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.