Forum de la communauté SFML
Aide => Général => Discussion démarrée par: zedex le Août 27, 2015, 08:12:04 pm
-
Bonjour,
Je cherche à exécuter le code de test ("SFML works!") mais je n'y parviens pas. J'obtiens le message d'erreur :
Le point d'entrée de procédure _ZSt24__throw_out_of_range_fmtPKcz est introuvable dan la bibliothèque de liens dynamiques C:\Users\Cédric\Documents\Programmation\Projets-Ressources\Editeur_de_Cartes\bin\Debug\sfml-graphics-2-dll.
J'ai donc essayé de compiler SFML à l'aide de CMake (http://www.sfml-dev.org/tutorials/2.1/compile-with-cmake-fr.php) gui et en utilisant le fichier CMakeLists.txt (https://github.com/SFML/SFML/blob/master/CMakeLists.txt).
J'ai bien indiqué le code source de SFML (ce doit être la racine de la hiérarchie SFML, là où se trouve le premier fichier CMakeLists.txt), mais j'obtiens le message d'erreur suivant :
The C compiler identification is GNU 4.7.1
The CXX compiler identification is GNU 4.7.1
Check for working C compiler: C:/Program Files (x86)/CodeBlocks/MinGW/bin/gcc.exe
Check for working C compiler: C:/Program Files (x86)/CodeBlocks/MinGW/bin/gcc.exe -- broken
CMake Error at C:/Program Files (x86)/CMake/share/cmake-3.3/Modules/CMakeTestCCompiler.cmake:61 (message):
The C compiler "C:/Program Files (x86)/CodeBlocks/MinGW/bin/gcc.exe" is not
able to compile a simple test program.
It fails with the following output:
Change Dir: C:/Users/Cédric/Documents/Programmation/Projets-Ressources/Editeur_de_Cartes/SFML-2.3.1-build/CMakeFiles/CMakeTmp
Run Build Command:"C:/PROGRA~2/CODEBL~1/MinGW/bin/mingw32-make.exe"
"cmTC_5e7d4/fast"
C:/PROGRA~2/CODEBL~1/MinGW/bin/mingw32-make.exe -f
CMakeFiles\cmTC_5e7d4.dir\build.make CMakeFiles/cmTC_5e7d4.dir/build
mingw32-make.exe[1]: Entering directory
`C:/Users/C�dric/Documents/Programmation/Projets-Ressources/Editeur_de_Cartes/SFML-2.3.1-build/CMakeFiles/CMakeTmp'
Building C object CMakeFiles/cmTC_5e7d4.dir/testCCompiler.c.obj
C:\PROGRA~2\CODEBL~1\MinGW\bin\gcc.exe -o
CMakeFiles\cmTC_5e7d4.dir\testCCompiler.c.obj -c
C:\Users\Cédric\Documents\Programmation\Projets-Ressources\Editeur_de_Cartes\SFML-2.3.1-build\CMakeFiles\CMakeTmp\testCCompiler.c
gcc.exe: error:
C:\Users\Cédric\Documents\Programmation\Projets-Ressources\Editeur_de_Cartes\SFML-2.3.1-build\CMakeFiles\CMakeTmp\testCCompiler.c:
No such file or directory
gcc.exe: fatal error: no input files
compilation terminated.
mingw32-make.exe[1]: *** [CMakeFiles/cmTC_5e7d4.dir/testCCompiler.c.obj]
Error 1
mingw32-make.exe[1]: Leaving directory
`C:/Users/C�dric/Documents/Programmation/Projets-Ressources/Editeur_de_Cartes/SFML-2.3.1-build/CMakeFiles/CMakeTmp'
mingw32-make.exe: *** [cmTC_5e7d4/fast] Error 2
CMake will not be able to correctly generate this project.
Call Stack (most recent call first):
CMakeLists.txt:35 (project)
Configuring incomplete, errors occurred!
See also "C:/Users/Cédric/Documents/Programmation/Projets-Ressources/Editeur_de_Cartes/SFML-2.3.1-build/CMakeFiles/CMakeOutput.log".
See also "C:/Users/Cédric/Documents/Programmation/Projets-Ressources/Editeur_de_Cartes/SFML-2.3.1-build/CMakeFiles/CMakeError.log".
J'ai beau essayer de le lancer en mode admin mais rien n'y fait. Je suis à cours d'idées.
Pour info, je suis sous Windows 8.1, j'utilise Code::Blocks 13.12, SFML 2.3.1 et CMake 3.3.1
Merci d'avance.
Cordialement,
-
Je ne sais pas comment ni pourquoi, mais il est clair que ton environnement de compilation est "cassé".
Check for working C compiler: C:/Program Files (x86)/CodeBlocks/MinGW/bin/gcc.exe -- broken
-
Peut-être un problème avec les accents dans le chemin du projet (une des erreurs dit que gcc ne trouve pas le fichier créé par CMake pour tester l'environnement de compilation).
-
En effet, je pencherais aussi pour ça. De manière générale, il ne faut jamais utiliser de caractère non-ASCII ni d'espace dans les chemins utilisés par un compilateur. (ou mieux : ne jamais en utiliser de manière générale). Windows force plus ou moins à ne pas respecter cette règle, il ne faut pas hésiter à le brusquer un peu (exemple : ne rien installer dans "Program Files").
-
Merci de votre aide,
J'ai donc déplacé le dossier à la racine de mon disque pour éviter le soucis d'accent. Il m'a fallu également créer le fichier Config.cmake (https://github.com/SFML/SFML/blob/master/cmake/Config.cmake) dans \SFML-2.3.1\cmake
Maintenant j'ai l'erreur suivante :
The C compiler identification is GNU 4.7.1
The CXX compiler identification is GNU 4.7.1
Check for working C compiler: C:/Program Files (x86)/CodeBlocks/MinGW/bin/gcc.exe
Check for working C compiler: C:/Program Files (x86)/CodeBlocks/MinGW/bin/gcc.exe -- works
Detecting C compiler ABI info
Detecting C compiler ABI info - done
Detecting C compile features
Detecting C compile features - done
Check for working CXX compiler: C:/Program Files (x86)/CodeBlocks/MinGW/bin/g++.exe
Check for working CXX compiler: C:/Program Files (x86)/CodeBlocks/MinGW/bin/g++.exe -- works
Detecting CXX compiler ABI info
Detecting CXX compiler ABI info - done
Detecting CXX compile features
Detecting CXX compile features - done
Looking for sys/types.h
Looking for sys/types.h - found
Looking for stdint.h
Looking for stdint.h - found
Looking for stddef.h
Looking for stddef.h - found
Check size of void*
Check size of void* - done
CMake Error at CMakeLists.txt:220 (add_subdirectory):
add_subdirectory given source "src/SFML" which is not an existing
directory.
Configuring incomplete, errors occurred!
See also "C:/Editeur_de_Cartes/SFML-2.3.1-build/CMakeFiles/CMakeOutput.log".
Faut-il que je le créé moi-même et où ?
-
Il m'a fallu également créer le fichier Config.cmake dans \SFML-2.3.1\cmake
add_subdirectory given source "src/SFML" which is not an existing directory.
Tu t'y prends mal. Quand ça ne marche pas il ne faut pas bricoler comme ça ;)
Est-ce que ce sont bien les sources que tu compiles, et pas une release ?
-
C'est la version GCC 4.9.2 MinGW (DW2) - 32-bit sur la page de téléchargement, extraite du .zip, donc dans le doute je dirait une release :p
Je vais réessayer avec le code source "tout OS"
-
Il faut bien le zip "Code source - Tout OS" pour pouvoir compiler SFML soi-même (car il contient le dossier src).
-
Ok ! super tout fonctionne !!
Merci encore !!