Quand je tente de lancer cmake pour construire un projet où j'inclure la bibliothèque SFML je reçois l'erreur suivante: SFML found but version too low (requested: 2.4, found: 1.x.x)
compilation SFML avec CMake et MinGW sous Windows
Je téléchargé que la source de la nouvelle version de la bibliothèque (SFML-2.4.2). J'exécute cmake (avec MinGW Makefiles) et compile les binaires dans le même dossier. J'ai copié le FindSFML dans un sous-dossier de mon projet. Après que j'avais la structure de dossier suivant
SFML-2.4.2\
cmake\
Modules\
FindSFML.cmake
CMakeFiles
doc
...
include
lib
src
..
sfml-games\
tetris\
cmake_modules\
FindSFML.cmake
CMakeLists.txt
main.cpp
tetris-build
...
Mon CMakeLists.txt contient les choses suivantes:
project(Tetris)
cmake_minimum_required(VERSION 2.8)
aux_source_directory(. SRC_LIST)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake_modules")
Find_package(SFML 2 REQUIRED system window graphics network audio)
include_directories(${SFML_INCLUDE_DIR})
add_executable(${PROJECT_NAME} ${SRC_LIST})
target_link_libraries(${PROJECT_NAME} ${SFML_LIBRARY})
Je trouve que CMake est réglé sur l'entrée C:\Program Files (x86)\SFML
CMAKE_INSTALL_PREFIX (que je n'obtiens pas) donc je mets la bibliothèque et le lib de SFML dans C: \ Program Files (x86) \ SFML. (qu'est-ce que CMAKE_INSTALL_PREFIX et dois-je vraiment toujours copier les dossiers de bibliothèque et lib dans mon C:\Program Files (x86)\
??). Maintenant, mon cmake fonctionne, mais quand j'essaie de compiler le code, je reçois beaucoup de références non définies à '_imp __....'
Par ailleurs sur Linux, je viens d'installer SFML via sudo apt-get install libsfml-dev
et cela fonctionne hors de la boîte .