Связывание GLEW с CMake в Windows - PullRequest
       3

Связывание GLEW с CMake в Windows

0 голосов
/ 22 сентября 2019

У меня есть такой проект:

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}")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...