Как правильно связать библиотеки, используя CMakeLists.txt для MinGW?

#c #cmake #mingw

#c #cmake #mingw

Вопрос:

Я выбивался из сил из-за CMakelists.txt . Я хотел бы создать приложение на C с библиотеками GLFW, GLEW, используя MinGW и CLion IDE.

Вот мой CMakeLists.txt:

 cmake_minimum_required(VERSION 3.17.3)
project(imguiTask)

set(CMAKE_CXX_STANDARD 17)
add_compile_options(-DGLEW_NO_GLU)

add_executable(${PROJECT_NAME}
        src/main.cpp
        src/imgui.cpp
        src/imgui_draw.cpp
        src/imgui_widgets.cpp
        )

target_include_directories(${PROJECT_NAME} PUBLIC includes)

add_library(libraries STATIC IMPORTED)
target_link_libraries(${PROJECT_NAME} glfw3) 
 

Структура файла

Я поместил необходимые библиотеки в libraries папку, как вы можете видеть на картинке. Папка находится в корне проекта. Это выдает мне следующую ошибку:

 d:/mingw/bin/../lib/gcc/mingw32/9.2.0/../../../../mingw32/bin/ld.exe: cannot find -lglfw3
collect2.exe: error: ld returned 1 exit status
mingw32-make.exe[3]: *** [imguiTask.exe] Error 1
mingw32-make.exe[2]: *** [CMakeFiles/imguiTask.dir/all] Error 2
mingw32-make.exe[1]: *** [CMakeFiles/imguiTask.dir/rule] Error 2
mingw32-make.exe: *** [imguiTask] Error 2
 

Мне кажется, что он не выполняет поиск в указанной мной папке. Я не знаю, почему.

Комментарии:

1.«Мне кажется, что он не выполняет поиск в указанной мной папке». — Я не вижу, в какой строке вашего CMakeLists.txt каталога указан libraries каталог для поиска библиотек в нем. Такие настройки обычно выполняются с помощью link_directories или target_link_directories (обратите внимание, что первая должна быть выполнена до add_executable того, как / add_library вы хотите повлиять).

2. Спасибо! Я полностью пропустил это.