Forum de la communauté SFML
Bindings - autres langages => C => Discussion démarrée par: Crone123 le Janvier 24, 2015, 02:43:56 pm
-
Bonjour,
Où puis-je trouver une documentation pour CSFML équivalente a celle présente sur le site pour la SFML (C++)?
Merci d'avance :)
-
Dans le SDK.
-
OK, j'avais pas vu ce dossier..., merci :)
J'essaie de la compiler moi même:
cmake -G "Unix Makefiles"
CMake Error at src/SFML/CMakeLists.txt:27 (find_package):
By not providing "FindSFML.cmake" in CMAKE_MODULE_PATH this project has
asked CMake to find a package configuration file provided by "SFML", but
CMake did not find one.
Could not find a package configuration file provided by "SFML" (requested
version 2.0) with any of the following names:
SFMLConfig.cmake
sfml-config.cmake
Add the installation prefix of "SFML" to CMAKE_PREFIX_PATH or set
"SFML_DIR" to a directory containing one of the above files. If "SFML"
provides a separate development package or SDK, be sure it has been
installed.
-- Configuring incomplete, errors occurred!
J'ai pas trop compris ce qu'il manque là...
Merci d'avance :)
-
Tu dois utiliser une option du style `-DCMAKE_MODULE_PATH=/usr/local/share/SFML/cmake/Modules/`. L'idée c'est de donner à cmake le chemin vers `FindSFML.cmake`.
-
Euh, admettons, mais comment je suis censé savoir où il est ce fichier? Parce que je suis censé compiler la SFML justement, donc je vois pas trop comment j'aurais pu avoir ce fichier quelque part avant...
J'ai eu le même soucis en essayant de compiler d'autres programmes, mais j'ai pas compris non plus c'est quoi ce fichier...
Je me doute que je ne compile pas un .cmake, mais du coup: Il sert a quoi? et je le trouve où? Il est fourni dans le zip?
Pour compiler la SFML en C++ je ne crois pas avoir eu ce problème.....(et je ne me rappelle pas d'avoir spécifié un fichier quelconque..)
Merci d'avance :)
-
C'est le fichier qui sert à trouver les en-têtes et bibliothèques de SFML. Donc effectivement tu n'en as pas besoin pour compiler SFML... ;) Et il est fourni dans le SDK de SFML (cmake/modules). Si tu ne veux pas t'embêter, copie-le une bonne fois pour toutes dans le répertoire "Modules" (share/cmake-x.y/Modules) de ton installation de CMake.
-
Donc, j'ai regardé:
La version fournie sur le site dans le zip ne contient pas ces fichiers.... et la version Github non plus :(
Le dossier cmake ne contient que les fichiers:
"Config.cmake" et "Macros.cmake", il n'y a pas de dossier "modules" avec les 2 fichiers censés être dedans...
Merci d'avance :)
-
Dans le SDK de SFML, pas CSFML.
-
Ah d'accord, mais CSFML se compile "seul"? Ou bien il dépends de SFML (si j'ai bien compris c'est ça...), si c'est le cas: Je dois mettre les .so de la SFML quelque part?
valentin@DELL-VALENTIN:~/dev/CSFML-2.1$ cmake -G "Unix Makefiles" -DCMAKE_MODULE_PATH="cmake"
-- The C compiler identification is GNU 4.8.2
-- The CXX compiler identification is GNU 4.8.2
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
CMake Error at cmake/Modules/FindSFML.cmake:199 (message):
Could NOT find SFML (missing: SFML_SYSTEM_LIBRARY SFML_WINDOW_LIBRARY
SFML_NETWORK_LIBRARY SFML_GRAPHICS_LIBRARY SFML_AUDIO_LIBRARY)
Call Stack (most recent call first):
src/SFML/CMakeLists.txt:27 (find_package)
-- Configuring incomplete, errors occurred!
See also "/home/valentin/dev/CSFML-2.1/CMakeFiles/CMakeOutput.log".
valentin@DELL-VALENTIN:~/dev/CSFML-2.1$
Merci :)
-
CSFML dépend bien évidemment de SFML (c'est un binding, pas une réécriture complète). Lis le gros pâté de commentaires au début du fichier FindSFML.cmake, ça t'expliquera tout ce qu'il y a à savoir.
-
J'ai suivis le fichier:
valentin@DELL-VALENTIN:~/dev/CSFML-2.1$ cmake -G "Unix Makefiles" -DCMAKE_MODULE_PATH="cmake" -DSFML_AUDIO_LIBRARY_RELEASE="../sp/SFML-2.1/lib/" -DSFML_WINDOW_LIBRARY_RELEASE="../sp/SFML-2.1/lib/" -DSFML_GRAPHICS_LIBRARY_RELEASE="../sp/SFML-2.1/lib/" -DSFML_SYSTEM_LIBRARY_RELEASE="../sp/SFML-2.1/lib/" -DSFML_NETWORK_LIBRARY_RELEASE="../sp/SFML-2.1/lib/" -DSFML_INCLUDE_DIR="../sp/SFML-2.1/include/"
CMake Error at cmake/Modules/FindSFML.cmake:89 (FILE):
file Internal CMake error when trying to open file:
/home/valentin/dev/sp/SFML-2.1/include/SFML/Config.hpp for reading.
Call Stack (most recent call first):
src/SFML/CMakeLists.txt:27 (find_package)
CMake Error at cmake/Modules/FindSFML.cmake:199 (message):
SFML found but version too low (requested: 2.0, found: 1.x)
Call Stack (most recent call first):
src/SFML/CMakeLists.txt:27 (find_package)
-- Configuring incomplete, errors occurred!
See also "/home/valentin/dev/CSFML-2.1/CMakeFiles/CMakeOutput.log".
Il me dit que la version est pas bonne, alors que j'ai la version 2.1 dans le dossier :(
OK, j'ai juste fail nom de dossier.., ça s'est compilé, merci :D
-
Good :)
-
Donc en fait:
CSFML est codée en C++, elle inclus la SFML en C++, et est codée uniquement avec des instructions que l'on peut appeler en C, c'est bien ça?
Donc si j'ai bien compris, CSFML c'est juste une espèce de couche qui convertir du C en C++ de cette façon? (en gros)
Si c'est bien ça, je trouve le concept vachement intéressant :) Je pensais pas qu'on pouvait appeler du C++ dans un programme C comme ça :p
-
En fait, CSFML est effectivement écrite en C++, mais les fonctions qu'elle exporte ont des signatures purement C, donc utilisables par un linker C.