У меня есть такой проект:
ProjectFolder/
- CMakeLists.txt
- main.cpp
- Libs/
- GLEW/
- include
- lib
- bin
Я скачал двоичные файлы для GLEW.Я попробовал несколько вещей, но ничего не получается.Может кто-нибудь, пожалуйста, помогите мне с тем, как создать файл CMakeLists.txt
, чтобы я мог правильно связать с GLEW.Спасибо!
CMakeLists.txt
:
cmake_minimum_required (VERSION 3.13)
project(MyProjectName)
add_executable (MyProjectName "main.cpp")
...
set(VV_GLEW_DIR "${CMAKE_SOURCE_DIR}/Libs/GLEW")
set(VV_GLEW_INCLUDE_DIR "${VV_GLEW_DIR}/include")
set(VV_GLEW_LINK_DIR "${VV_GLEW_DIR}/lib/Release/Win32")
set(VV_GLEW_DLL_PATH "${VV_GLEW_DIR}/bin/Release/Win32/glew32.dll")
target_include_directories(MyProjectName PUBLIC "${VV_GLEW_INCLUDE_DIR}")
file(COPY ${VV_GLEW_DLL_PATH} DESTINATION ${CMAKE_BINARY_DIR})
link_directories("${VV_GLEW_LINK_DIR}")
target_link_libraries(MyProjectName glew32 glfw "${OPENGL_gl_LIBRARY}")
Я подумал, что мне нужно скопировать DLL, чтобы ее мог найти исполняемый файл.Но я просто получаю сообщение об ошибке "не могу открыть файл 'glew32.lib'".
[ОБНОВЛЕНИЕ]
Мне удалось заставить его работать.Вот что я должен был написать:
# External libraries (GLEW)
set(VV_GLEW_DIR "${CMAKE_SOURCE_DIR}/Libs/GLEW")
set(VV_GLEW_INCLUDE_DIR "${VV_GLEW_DIR}/include")
set(VV_GLEW_LINK_DIR "${VV_GLEW_DIR}/lib/Release/x64")
set(GLEW_INCLUDE_DIR "${VV_GLEW_DIR}")
set(GLEW_LIBRARY "${VV_GLEW_LINK_DIR}/glew32s.lib")
find_package(GLEW REQUIRED)
target_include_directories(MyProjectName PUBLIC "${OPENGL_INCLUDE_DIR}" "${VV_GLEW_INCLUDE_DIR}")
target_link_libraries(MyProjectName PRIVATE GLEW::GLEW glfw "${OPENGL_gl_LIBRARY}")