Glfw: find_package (glfw3) sur ubuntu yakkety

Créé le 6 juin 2017  ·  3Commentaires  ·  Source: glfw/glfw

Bonjour, l'utilisation de find_package(glfw3) ne fonctionne pas sur les nouvelles versions de la bibliothèque installée.

J'ai installé glfw3 sur ubuntu yakkety :

apt-get install libglfw3-dev
dpkg --status libglfw3-dev

La version installée est la 3.2.1-1.

Ensuite, j'ai le fichier cmake :

find_package(glfw3)
get_cmake_property(_variableNames VARIABLES)
foreach (_variableName ${_variableNames})
    message(STATUS "${_variableName}=${${_variableName}}")
endforeach()

Et l'exécuter comme cmake . | grep -i glfw donne (sur yakkety):

-- CONFIG_FILES=/usr/lib/x86_64-linux-gnu/cmake/glfw3/glfw3Targets-none.cmake
-- GLFW3_DIR=GLFW3_DIR-NOTFOUND
-- _DIR=/usr/lib/x86_64-linux-gnu/cmake/glfw3
-- glfw3_CONFIG=/usr/lib/x86_64-linux-gnu/cmake/glfw3/glfw3Config.cmake
-- glfw3_CONSIDERED_CONFIGS=/usr/lib/x86_64-linux-gnu/cmake/glfw3/glfw3Config.cmake
-- glfw3_CONSIDERED_VERSIONS=3.2.1
-- glfw3_DIR=/usr/lib/x86_64-linux-gnu/cmake/glfw3
-- glfw3_FOUND=1
-- glfw3_VERSION=3.2.1
-- glfw3_VERSION_COUNT=3
-- glfw3_VERSION_MAJOR=3
-- glfw3_VERSION_MINOR=2
-- glfw3_VERSION_PATCH=1
-- glfw3_VERSION_TWEAK=0
-- glfw_DIR=glfw_DIR-NOTFOUND

Alors que sur ubuntu xenial, cela donne :

-- GLFW3_INCLUDE_DIR=/usr/include
-- GLFW3_LIBRARY=/usr/lib/x86_64-linux-gnu/libglfw.so
-- GLFW3_LIBRARY_DIR=/usr/lib/x86_64-linux-gnu
-- GLFW3_VERSION=3.1.2
-- glfw3_CONFIG=/usr/lib/x86_64-linux-gnu/cmake/glfw3/glfw3Config.cmake
-- glfw3_CONSIDERED_CONFIGS=/usr/lib/x86_64-linux-gnu/cmake/glfw3/glfw3Config.cmake
-- glfw3_CONSIDERED_VERSIONS=3.1.2
-- glfw3_DIR=/usr/lib/x86_64-linux-gnu/cmake/glfw3
-- glfw3_FOUND=1
-- glfw3_VERSION=3.1.2
-- glfw3_VERSION_COUNT=3
-- glfw3_VERSION_MAJOR=3
-- glfw3_VERSION_MINOR=1
-- glfw3_VERSION_PATCH=2
-- glfw3_VERSION_TWEAK=0

Pour résumer, il manque GLFW3_INCLUDE_DIR et GLFW3_LIBRARY la nouvelle version.

Linux build question

Commentaire le plus utile

GLFW 3.2 et versions ultérieures utilisent la fonction d'exportation cible CMake. La cible glfw vous importez avec find_package contient les répertoires nécessaires, les dépendances de temps de liaison, etc.

À partir de 3.2, tout ce que vous avez à faire est de :

find_package(glfw3)
target_link_libraries(myapplicationname glfw)

Tous les 3 commentaires

GLFW 3.2 et versions ultérieures utilisent la fonction d'exportation cible CMake. La cible glfw vous importez avec find_package contient les répertoires nécessaires, les dépendances de temps de liaison, etc.

À partir de 3.2, tout ce que vous avez à faire est de :

find_package(glfw3)
target_link_libraries(myapplicationname glfw)

La documentation 3.2 a fait un très mauvais travail pour expliquer cela. Il a été quelque peu amélioré pour la 3.3.

Merci. Je l'ai fait fonctionner avec les deux versions maintenant.

Cette page vous a été utile?
0 / 5 - 0 notes