Glfw: ubuntu yakketyのfind_package(glfw3)

作成日 2017年06月06日  ·  3コメント  ·  ソース: glfw/glfw

こんにちは、find_package(glfw3)の使用は、インストールされているライブラリの新しいバージョンでは機能しません。

私はubuntuyakketyにglfw3をインストールしました:

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

インストールされているバージョンは3.2.1-1です。

次に、cmakeファイルがあります:

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

そしてそれをcmake . | grep -i glfwように実行すると(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

一方、ubuntu xenialでは、次のようになります。

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

要約すると、新しいバージョンにはGLFW3_INCLUDE_DIRGLFW3_LIBRARYがありません。

Linux build question

最も参考になるコメント

GLFW 3.2以降は、CMakeターゲットのエクスポート機能を使用します。 glfwあなたとインポートターゲットfind_package必要なディレクトリ、リンク時の依存関係などが含まれています

3.2以降、実行する必要があるのは次のとおりです。

find_package(glfw3)
target_link_libraries(myapplicationname glfw)

全てのコメント3件

GLFW 3.2以降は、CMakeターゲットのエクスポート機能を使用します。 glfwあなたとインポートターゲットfind_package必要なディレクトリ、リンク時の依存関係などが含まれています

3.2以降、実行する必要があるのは次のとおりです。

find_package(glfw3)
target_link_libraries(myapplicationname glfw)

3.2のドキュメントは、これを説明するのに非常に貧弱な仕事をしていました。 3.3では多少改善されています。

ありがとうございました。 現在、両方のバージョンで動作するようにしています。

このページは役に立ちましたか?
0 / 5 - 0 評価