Glfw: find_package (glfw3) no ubuntu yakkety

Criado em 6 jun. 2017  ·  3Comentários  ·  Fonte: glfw/glfw

Oi, usando find_package (glfw3) não funciona em versões mais recentes da biblioteca instalada.

Instalei o glfw3 no ubuntu yakkety:

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

A versão instalada é 3.2.1-1.

Então, eu tenho o arquivo cmake:

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

E executá-lo como cmake . | grep -i glfw dá (no 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

Considerando que no ubuntu xenial, ele oferece:

-- 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

Para resumir, a versão mais recente está faltando GLFW3_INCLUDE_DIR e GLFW3_LIBRARY .

Linux build question

Comentários muito úteis

GLFW 3.2 e posterior usa o recurso de exportação de destino CMake. O destino glfw você importou com find_package contém os diretórios necessários, dependências de tempo de link, etc.

A partir do 3.2, tudo o que você precisa fazer é:

find_package(glfw3)
target_link_libraries(myapplicationname glfw)

Todos 3 comentários

GLFW 3.2 e posterior usa o recurso de exportação de destino CMake. O destino glfw você importou com find_package contém os diretórios necessários, dependências de tempo de link, etc.

A partir do 3.2, tudo o que você precisa fazer é:

find_package(glfw3)
target_link_libraries(myapplicationname glfw)

A documentação do 3.2 fez um trabalho muito ruim ao explicar isso. Foi um pouco melhorado para 3.3.

Obrigada. Eu fiz funcionar com as duas versões agora.

Esta página foi útil?
0 / 5 - 0 avaliações