Я не смог понять, как заставить CMake найти и установить правильные константы CMake GLFW при использовании CMake в VS2017. Любая помощь будет оценена :).
Я скачал glfw3
с помощью инструмента Microsoft vcpkg
. Я проверил, что файлы физически существуют в каталоге, в который их помещает vcpkg
(~\vcpkg\installed\x86-windows\include
). Я настроил свой CMakeSettings.json
в соответствии с их документами здесь а>. Я использовал это руководство в качестве основы для правильной настройки GLFW.
Затем я использую find_package(glfw3 REQUIRED)
, чтобы найти библиотеку glfw3
. Это не выдает никаких ошибок. На самом деле CMakeLists.txt
вообще не жалуется. Это на этапе компиляции, где он жалуется.
После этого я добавляю glfw3
с target_link_libraries(exe ${GLFW3_LIBRARIES})
в исполняемый файл.
Затем, когда я пытаюсь создать простой пример (включая заголовочный файл), компиляция завершается ошибкой, поскольку не удается найти GLFW/glfw3.h
.
Ошибка от MSVC:
fatal error C1083: Cannot open include file: 'GLFW/glfw3.h': No such file or directory
Вот мой CMakeLists.txt
для дополнительной справки:
cmake_minimum_required(VERSION 3.7)
project(learn-opengl)
find_package(glfw3 REQUIRED)
add_executable(learn-opengl main.cpp)
target_link_libraries(learn-opengl ${GLFW3_LIBRARIES})
GLFW3_LIBRARIES
Я получил от glfw3Config.cmake
, выискивая, что vcpkg
помещает в установленный каталог (~\vcpkg\installed\x86-windows\share\glfw3
)
И на всякий случай main.cpp
:
#include <GLFW/glfw3.h>
int main()
{
return 0;
}
Я также пытался вызвать cmake
из командной строки, но безрезультатно.
Я что-то упускаю? Возможно, я что-то неправильно понял в документации vcpkg
? Я действительно понятия не имею, чего мне не хватает... :/ Кроме того, я должен сказать, что я довольно новичок в CMake.
glfw
илиglfw3
в командуtarget_link_libraries
вместо${GLFW3_LIBRARIES}
? Это должно исправить ошибку, которую вы видите. - person vre   schedule 25.07.2017glfw
сработало :D! Не могли бы вы опубликовать свой комментарий в качестве ответа, чтобы я мог закрыть вопрос? Спасибо большое! Так просто... - person segmentation_fault   schedule 25.07.2017