Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

Doesn't find files when building project

I have linked the SFML and TGUI libraries in my project. I also included these libraries in another CMakeLists in this project. When I start building the project, I get a message that the files from these libraries cannot be found. And every time it seems to be connected only with TGUI. I even tried using target_include_directories to include the library header files, but it didn’t help. Additionally, this project lists both libraries in the search path header.

C:\Users\vinog\CLionProjects\url-player\ui\include\music_list.h(3): fatal error C1083: Cannot open include file: 'TGUI/Backend/SFML-Graphics.hpp': No such file or directory
mingw32-make[3]: *** [CMakeFiles\url_player.dir\build.make:75: CMakeFiles/url_player.dir/main.cpp.obj] Error 2
mingw32-make[2]: *** [CMakeFiles\Makefile2:137: CMakeFiles/url_player.dir/all] Error 2
mingw32-make[1]: *** [CMakeFiles\Makefile2:144: CMakeFiles/url_player.dir/rule] Error 2
mingw32-make: *** [Makefile:123: url_player] Error 2

I know that libraries have been founded. Because I see the content of the message.

I include libraries like this:

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

set(SFML_DIR ${SFML_PATH})
find_package(SFML COMPONENTS system window graphics REQUIRED PATHS ${SFML_DIR})

set(TGUI_DIR ${TGUI_PATH})
find_package(TGUI REQUIRED PATHS ${TGUI_DIR})

I try to include this files:

#include <TGUI/Backend/SFML-Graphics.hpp>
#include <TGUI/Widgets/Panel.hpp>

CmakeLists:

add_library(ui STATIC
        src/music_list.cpp
        src/button.cpp
        ui-config/src/json-ui-config.cpp
        src/menu.cpp
)

target_include_directories(ui PRIVATE ${TGUI_INCLUDE_DIR} include ${CMAKE_SOURCE_DIR}/json ui-config/include)

target_link_libraries(ui PRIVATE tgui sfml-system sfml-graphics sfml-window sfml-main music-storage json-storage)

In Header search path I see these headers

I tried to clear the cache, reload the CMake project, relink libraries and recreate the class where the error occurs.

full commandline:

"C:\Program Files\JetBrains\CLion 2024.1.4\bin\cmake\win\x64\bin\cmake.exe" -SC:\Users\vinog\CLionProjects\url-player -BC:\Users\vinog\CLionProjects\url-player\cmake-build-debug --check-build-system CMakeFiles\Makefile.cmake 0
C:/mingw/bin/mingw32-make.exe  -f CMakeFiles\Makefile2 url_player
mingw32-make[1]: Entering directory 'C:/Users/vinog/CLionProjects/url-player/cmake-build-debug'
"C:\Program Files\JetBrains\CLion 2024.1.4\bin\cmake\win\x64\bin\cmake.exe" -SC:\Users\vinog\CLionProjects\url-player -BC:\Users\vinog\CLionProjects\url-player\cmake-build-debug --check-build-system CMakeFiles\Makefile.cmake 0
"C:\Program Files\JetBrains\CLion 2024.1.4\bin\cmake\win\x64\bin\cmake.exe" -E cmake_progress_start C:\Users\vinog\CLionProjects\url-player\cmake-build-debug\CMakeFiles 11
C:/mingw/bin/mingw32-make.exe  -f CMakeFiles\Makefile2 CMakeFiles/url_player.dir/all
mingw32-make[2]: Entering directory 'C:/Users/vinog/CLionProjects/url-player/cmake-build-debug'
C:/mingw/bin/mingw32-make.exe  -f storage\CMakeFiles\json-storage.dir\build.make storage/CMakeFiles/json-storage.dir/depend
mingw32-make[3]: Entering directory 'C:/Users/vinog/CLionProjects/url-player/cmake-build-debug'
"C:\Program Files\JetBrains\CLion 2024.1.4\bin\cmake\win\x64\bin\cmake.exe" -E cmake_depends "MinGW Makefiles" C:\Users\vinog\CLionProjects\url-player C:\Users\vinog\CLionProjects\url-player\storage C:\Users\vinog\CLionProjects\url-player\cmake-build-debug C:\Users\vinog\CLionProjects\url-player\cmake-build-debug\storage C:\Users\vinog\CLionProjects\url-player\cmake-build-debug\storage\CMakeFiles\json-storage.dir\DependInfo.cmake "--color="
mingw32-make[3]: Leaving directory 'C:/Users/vinog/CLionProjects/url-player/cmake-build-debug'
C:/mingw/bin/mingw32-make.exe  -f storage\CMakeFiles\json-storage.dir\build.make storage/CMakeFiles/json-storage.dir/build
mingw32-make[3]: Entering directory 'C:/Users/vinog/CLionProjects/url-player/cmake-build-debug'
[  9%] Linking CXX static library json-storage.lib
cd /d C:\Users\vinog\CLionProjects\url-player\cmake-build-debug\storage && "C:\Program Files\JetBrains\CLion 2024.1.4\bin\cmake\win\x64\bin\cmake.exe" -P CMakeFiles\json-storage.dir\cmake_clean_target.cmake
cd /d C:\Users\vinog\CLionProjects\url-player\cmake-build-debug\storage && "C:\Program Files\JetBrains\CLion 2024.1.4\bin\cmake\win\x64\bin\cmake.exe" -E cmake_link_script CMakeFiles\json-storage.dir\link.txt --verbose=1
C:\PROGRA~1\MICROS~1\2022\COMMUN~1\VC\Tools\MSVC\1440~1.338\bin\Hostx64\x64\lib.exe /nologo /machine:x64 /out:json-storage.lib @CMakeFiles\json-storage.dir\objects1.rsp 
mingw32-make[3]: Leaving directory 'C:/Users/vinog/CLionProjects/url-player/cmake-build-debug'
[ 18%] Built target json-storage
C:/mingw/bin/mingw32-make.exe  -f music-storage\CMakeFiles\music-storage.dir\build.make music-storage/CMakeFiles/music-storage.dir/depend
mingw32-make[3]: Entering directory 'C:/Users/vinog/CLionProjects/url-player/cmake-build-debug'
"C:\Program Files\JetBrains\CLion 2024.1.4\bin\cmake\win\x64\bin\cmake.exe" -E cmake_depends "MinGW Makefiles" C:\Users\vinog\CLionProjects\url-player C:\Users\vinog\CLionProjects\url-player\music-storage C:\Users\vinog\CLionProjects\url-player\cmake-build-debug C:\Users\vinog\CLionProjects\url-player\cmake-build-debug\music-storage C:\Users\vinog\CLionProjects\url-player\cmake-build-debug\music-storage\CMakeFiles\music-storage.dir\DependInfo.cmake "--color="
mingw32-make[3]: Leaving directory 'C:/Users/vinog/CLionProjects/url-player/cmake-build-debug'
C:/mingw/bin/mingw32-make.exe  -f music-storage\CMakeFiles\music-storage.dir\build.make music-storage/CMakeFiles/music-storage.dir/build
mingw32-make[3]: Entering directory 'C:/Users/vinog/CLionProjects/url-player/cmake-build-debug'
[ 27%] Linking CXX static library music-storage.lib
cd /d C:\Users\vinog\CLionProjects\url-player\cmake-build-debug\music-storage && "C:\Program Files\JetBrains\CLion 2024.1.4\bin\cmake\win\x64\bin\cmake.exe" -P CMakeFiles\music-storage.dir\cmake_clean_target.cmake
cd /d C:\Users\vinog\CLionProjects\url-player\cmake-build-debug\music-storage && "C:\Program Files\JetBrains\CLion 2024.1.4\bin\cmake\win\x64\bin\cmake.exe" -E cmake_link_script CMakeFiles\music-storage.dir\link.txt --verbose=1
C:\PROGRA~1\MICROS~1\2022\COMMUN~1\VC\Tools\MSVC\1440~1.338\bin\Hostx64\x64\lib.exe /nologo /machine:x64 /out:music-storage.lib @CMakeFiles\music-storage.dir\objects1.rsp 
mingw32-make[3]: Leaving directory 'C:/Users/vinog/CLionProjects/url-player/cmake-build-debug'
[ 36%] Built target music-storage
C:/mingw/bin/mingw32-make.exe  -f ui\CMakeFiles\ui.dir\build.make ui/CMakeFiles/ui.dir/depend
mingw32-make[3]: Entering directory 'C:/Users/vinog/CLionProjects/url-player/cmake-build-debug'
"C:\Program Files\JetBrains\CLion 2024.1.4\bin\cmake\win\x64\bin\cmake.exe" -E cmake_depends "MinGW Makefiles" C:\Users\vinog\CLionProjects\url-player C:\Users\vinog\CLionProjects\url-player\ui C:\Users\vinog\CLionProjects\url-player\cmake-build-debug C:\Users\vinog\CLionProjects\url-player\cmake-build-debug\ui C:\Users\vinog\CLionProjects\url-player\cmake-build-debug\ui\CMakeFiles\ui.dir\DependInfo.cmake "--color="
mingw32-make[3]: Leaving directory 'C:/Users/vinog/CLionProjects/url-player/cmake-build-debug'
C:/mingw/bin/mingw32-make.exe  -f ui\CMakeFiles\ui.dir\build.make ui/CMakeFiles/ui.dir/build
mingw32-make[3]: Entering directory 'C:/Users/vinog/CLionProjects/url-player/cmake-build-debug'
[ 45%] Linking CXX static library ui.lib
cd /d C:\Users\vinog\CLionProjects\url-player\cmake-build-debug\ui && "C:\Program Files\JetBrains\CLion 2024.1.4\bin\cmake\win\x64\bin\cmake.exe" -P CMakeFiles\ui.dir\cmake_clean_target.cmake
cd /d C:\Users\vinog\CLionProjects\url-player\cmake-build-debug\ui && "C:\Program Files\JetBrains\CLion 2024.1.4\bin\cmake\win\x64\bin\cmake.exe" -E cmake_link_script CMakeFiles\ui.dir\link.txt --verbose=1
C:\PROGRA~1\MICROS~1\2022\COMMUN~1\VC\Tools\MSVC\1440~1.338\bin\Hostx64\x64\lib.exe /nologo /machine:x64 /out:ui.lib @CMakeFiles\ui.dir\objects1.rsp 
mingw32-make[3]: Leaving directory 'C:/Users/vinog/CLionProjects/url-player/cmake-build-debug'
[ 81%] Built target ui
C:/mingw/bin/mingw32-make.exe  -f CMakeFiles\url_player.dir\build.make CMakeFiles/url_player.dir/depend
mingw32-make[3]: Entering directory 'C:/Users/vinog/CLionProjects/url-player/cmake-build-debug'
"C:\Program Files\JetBrains\CLion 2024.1.4\bin\cmake\win\x64\bin\cmake.exe" -E cmake_depends "MinGW Makefiles" C:\Users\vinog\CLionProjects\url-player C:\Users\vinog\CLionProjects\url-player C:\Users\vinog\CLionProjects\url-player\cmake-build-debug C:\Users\vinog\CLionProjects\url-player\cmake-build-debug C:\Users\vinog\CLionProjects\url-player\cmake-build-debug\CMakeFiles\url_player.dir\DependInfo.cmake "--color="
mingw32-make[3]: Leaving directory 'C:/Users/vinog/CLionProjects/url-player/cmake-build-debug'
C:/mingw/bin/mingw32-make.exe  -f CMakeFiles\url_player.dir\build.make CMakeFiles/url_player.dir/build
mingw32-make[3]: Entering directory 'C:/Users/vinog/CLionProjects/url-player/cmake-build-debug'
[ 90%] Building CXX object CMakeFiles/url_player.dir/main.cpp.obj
"C:\Program Files\JetBrains\CLion 2024.1.4\bin\cmake\win\x64\bin\cmake.exe" -E cmake_cl_compile_depends --dep-file=CMakeFiles\url_player.dir\main.cpp.obj.d --working-dir=C:\Users\vinog\CLionProjects\url-player\cmake-build-debug --filter-prefix="Note: including file: " -- C:\PROGRA~1\MICROS~1\2022\COMMUN~1\VC\Tools\MSVC\1440~1.338\bin\Hostx64\x64\cl.exe  /nologo /TP   /DWIN32 /D_WINDOWS /EHsc /Ob0 /Od /RTC1 -std:c++17 -MDd -Zi /showIncludes /FoCMakeFiles\url_player.dir\main.cpp.obj /FdCMakeFiles\url_player.dir/ /FS -c C:\Users\vinog\CLionProjects\url-player\main.cpp
main.cpp
C:\Users\vinog\CLionProjects\url-player\ui\include\music_list.h(3): fatal error C1083: Cannot open include file: 'TGUI/Backend/SFML-Graphics.hpp': No such file or directory
mingw32-make[3]: Leaving directory 'C:/Users/vinog/CLionProjects/url-player/cmake-build-debug'
mingw32-make[2]: Leaving directory 'C:/Users/vinog/CLionProjects/url-player/cmake-build-debug'
mingw32-make[1]: Leaving directory 'C:/Users/vinog/CLionProjects/url-player/cmake-build-debug'
mingw32-make[3]: *** [CMakeFiles\url_player.dir\build.make:78: CMakeFiles/url_player.dir/main.cpp.obj] Error 2
mingw32-make[2]: *** [CMakeFiles\Makefile2:140: CMakeFiles/url_player.dir/all] Error 2
mingw32-make[1]: *** [CMakeFiles\Makefile2:147: CMakeFiles/url_player.dir/rule] Error 2
mingw32-make: *** [Makefile:126: url_player] Error 2

>Solution :

The problem is with your url_player target, not the ui target.
You passed PRIVATE to the target_include_directories command, which means that url_player does not receive the include paths you set up for ui.

Either change the PRIVATE to PUBLIC (so it does get propagated) or add an explicit

target_include_directories(url_player PRIVATE ${TGUI_INCLUDE_DIR})

Also, look into modern CMake, where the include directories are part of the TGUI library target and you just link to it instead of setting up include directories separately.

Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading