Hai, menggunakan find_package(glfw3) tidak berfungsi pada versi perpustakaan yang lebih baru.
Saya telah menginstal glfw3 di ubuntu yakkety:
apt-get install libglfw3-dev
dpkg --status libglfw3-dev
Versi yang diinstal adalah 3.2.1-1.
Kemudian, saya punya file cmake:
find_package(glfw3)
get_cmake_property(_variableNames VARIABLES)
foreach (_variableName ${_variableNames})
message(STATUS "${_variableName}=${${_variableName}}")
endforeach()
Dan menjalankannya seperti yang diberikan cmake . | grep -i glfw
(di 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
Sedangkan di ubuntu xenial, ia memberikan:
-- 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
Untuk meringkas, versi yang lebih baru tidak ada GLFW3_INCLUDE_DIR
dan GLFW3_LIBRARY
.
GLFW 3.2 dan yang lebih baru menggunakan fitur ekspor target CMake. Target glfw
Anda impor dengan find_package
berisi direktori yang diperlukan, dependensi link-time, dll.
Dimulai dengan 3.2 yang perlu Anda lakukan adalah:
find_package(glfw3)
target_link_libraries(myapplicationname glfw)
Dokumentasi 3.2 melakukan pekerjaan yang sangat buruk untuk menjelaskan hal ini. Ini telah sedikit ditingkatkan untuk 3.3.
Terima kasih. Saya telah membuatnya bekerja dengan kedua versi sekarang.
Komentar yang paling membantu
GLFW 3.2 dan yang lebih baru menggunakan fitur ekspor target CMake. Target
glfw
Anda impor denganfind_package
berisi direktori yang diperlukan, dependensi link-time, dll.Dimulai dengan 3.2 yang perlu Anda lakukan adalah: