Je suis actuellement en train de me coder un jeu. Je n'ai pas le temps de coder mon propre moteur physique et c'est pour ça que je cherche à employer une bibliothèque déjà écrite. Mon choix s'est porté sur Chipmunk Physique. Dans le tutoriel il est dit que je doit compiler la bibli pour l'utiliser et voir les exemples. J'ai essayé de le faire avec des résultats mitigé: la bibli est écrite pour ubuntu et malgré ma tentative d'installation des bibliothèque manquante, je n'ai pas l'impression que la compilation ai réussi. Plutôt que de rester bloqué à ce niveau, j'ai décidé d'ajouter tous les header et fichiers sources à mon projet et de compiler comme cela. (La bibliothèque est libre de droit, sinon, je ne me serais pas permis de le faire.) Le problème est que le programme ne compile pas, me renvoyant un simple message d'erreur de nom de domaine. (cf log.)
Ma question est la suivante: 1) Comment puis-je compiler correctement en ayant ajouter les fichier C++ et les header à mon projet? (Ou modifier mon code, puisque j'ai l'impression que l'erreur est une erreur de nom de domaine.) 2) Si quelqu'un(e) s'y connait avec chipmunk, pourrais je avoir des indication pour la compile. (Optionel car je sais que ce n'est pas du C++)
Merci pour cette réponse, mais si je ne connais pas le nouveau nom de la fonction, comment puis-je résoudre le problème? C'est vrai que l'erreur est assez explicite, sa résolution, beaucoup moins.
C'est simple, lire la documentation officielle au lieu de regarder des « tuto » sur internet. Mais certes, parfois même la documentation officielle peut-être malheureusement obsolète dans certains cas (comme des exemples).
Dans ce cas, vu que ton but était de déplacer un objet (si je ne me trompe pas), tu aurais pu regarder la documentation de référence sur les fonctions que tu peux utiliser sur l'objet cpBody.
git is great because Linus did it, mercurial is better because he didn't.
J'ai bien suivit la documentation sur laquelle vous m'avez renvoyé. Cependant, les fonctions définie dans le tutorielle proposée par le site (https://chipmunk-physics.net/release/ChipmunkLatest-Docs/ je n'ai pas suivit un tuto au pif, je tiens à le préciser. ^^) qui sont aussi présente dans la documentation( https://chipmunk-physics.net/release/ChipmunkLatest-API-Reference/group__cp_space.html ), ne sont pas définies pour mon programme. J'ai pourtant vérifié que j'avais rajouté le bon header. En effet cpSpace.h est appelé dans chipmunk.h, je ne devrais donc pas avoir de problème de définition. Je vous remet le code ainsi que les erreurs. Merci d'avance.
J'ai cherché dans les fichiers téléchargés, mais je n'ai pas trouvé de .lib. Est ce que cela peut venir du fait que je n'ai pas réussi à compiler la bibliothèque? En dépit de cause, j'ai rajouté les headers et src à mon projet et cela semble fonctionner. Cela étant dit, si quelqu'un pouvait m’aiguiller concernant la compilation avec cmake-gui (je sais, ce n'est pas du C++...) je lui en serait grès.
Tout d'abords, désolé pour ma réponse tardive, mes trois dernière semaines ont été assez chargées. J'ai quelques questions: Pourquoi rajouter les header et les sources ne fonctionne pas toujours? Je ne suis pas sous Linux ( ne me frappez pas, je connais les avantages à développer sous linux, mais je n'ai pas eu le temps de m'en occuper, du coup je suis sous window) et donc j'utilise cmake-gui. Les CMakeLists.txt sont déjà écrit et donnés par le créateur de chipmunk. Ce que je n'arrive pas à faire c'est de les compiler avec le cmake graphique. J'ai bien spécifié où se trouve le compilateur C/C++ et le dossier des sources que le cmake doit compiler. Je ne comprends pas ce qu'il y a à rajouter pour obtenir mes fichiers binaires.
Merci
Ha, et voici les logs:
CMake Warning (dev) at D:/cmake-3.12.0-win64-x64/share/cmake-3.12/Modules/CMakeGenericSystem.cmake:81 (elseif):
Policy CMP0054 is not set: Only interpret if() arguments as variables or
keywords when unquoted. Run "cmake --help-policy CMP0054" for policy
details. Use the cmake_policy command to set the policy and suppress this
warning.
Quoted variables like "" will no longer be dereferenced when the policy is
set to NEW. Since the policy is not set the OLD behavior will be used.
Call Stack (most recent call first):
D:/cmake-3.12.0-win64-x64/share/cmake-3.12/Modules/CMakeGenericSystem.cmake:169 (GetDefaultWindowsPrefixBase)
D:/cmake-3.12.0-win64-x64/share/cmake-3.12/Modules/CMakeSystemSpecificInformation.cmake:21 (include)
This warning is for project developers. Use -Wno-dev to suppress it.
CMake Warning (dev) at D:/cmake-3.12.0-win64-x64/share/cmake-3.12/Modules/CMakeGenericSystem.cmake:87 (elseif):
Policy CMP0054 is not set: Only interpret if() arguments as variables or
keywords when unquoted. Run "cmake --help-policy CMP0054" for policy
details. Use the cmake_policy command to set the policy and suppress this
warning.
Quoted variables like "" will no longer be dereferenced when the policy is
set to NEW. Since the policy is not set the OLD behavior will be used.
Call Stack (most recent call first):
D:/cmake-3.12.0-win64-x64/share/cmake-3.12/Modules/CMakeGenericSystem.cmake:169 (GetDefaultWindowsPrefixBase)
D:/cmake-3.12.0-win64-x64/share/cmake-3.12/Modules/CMakeSystemSpecificInformation.cmake:21 (include)
This warning is for project developers. Use -Wno-dev to suppress it.
CMake Warning (dev) at D:/cmake-3.12.0-win64-x64/share/cmake-3.12/Modules/CMakeGenericSystem.cmake:115 (if):
Policy CMP0054 is not set: Only interpret if() arguments as variables or
keywords when unquoted. Run "cmake --help-policy CMP0054" for policy
details. Use the cmake_policy command to set the policy and suppress this
warning.
Quoted variables like "" will no longer be dereferenced when the policy is
set to NEW. Since the policy is not set the OLD behavior will be used.
Call Stack (most recent call first):
D:/cmake-3.12.0-win64-x64/share/cmake-3.12/Modules/CMakeGenericSystem.cmake:169 (GetDefaultWindowsPrefixBase)
D:/cmake-3.12.0-win64-x64/share/cmake-3.12/Modules/CMakeSystemSpecificInformation.cmake:21 (include)
This warning is for project developers. Use -Wno-dev to suppress it.
CMake Warning (dev) at D:/cmake-3.12.0-win64-x64/share/cmake-3.12/Modules/CMakeGenericSystem.cmake:144 (if):
Policy CMP0054 is not set: Only interpret if() arguments as variables or
keywords when unquoted. Run "cmake --help-policy CMP0054" for policy
details. Use the cmake_policy command to set the policy and suppress this
warning.
Quoted variables like "" will no longer be dereferenced when the policy is
set to NEW. Since the policy is not set the OLD behavior will be used.
Call Stack (most recent call first):
D:/cmake-3.12.0-win64-x64/share/cmake-3.12/Modules/CMakeGenericSystem.cmake:169 (GetDefaultWindowsPrefixBase)
D:/cmake-3.12.0-win64-x64/share/cmake-3.12/Modules/CMakeSystemSpecificInformation.cmake:21 (include)
This warning is for project developers. Use -Wno-dev to suppress it.
CMake Warning (dev) at D:/cmake-3.12.0-win64-x64/share/cmake-3.12/Modules/CMakeInitializeConfigs.cmake:30 (if):
Policy CMP0054 is not set: Only interpret if() arguments as variables or
keywords when unquoted. Run "cmake --help-policy CMP0054" for policy
details. Use the cmake_policy command to set the policy and suppress this
warning.
Quoted variables like "" will no longer be dereferenced when the policy is
set to NEW. Since the policy is not set the OLD behavior will be used.
Call Stack (most recent call first):
D:/cmake-3.12.0-win64-x64/share/cmake-3.12/Modules/CMakeRCInformation.cmake:22 (cmake_initialize_per_config_variable)
D:/cmake-3.12.0-win64-x64/share/cmake-3.12/Modules/Platform/Windows-GNU.cmake:135 (enable_language)
D:/cmake-3.12.0-win64-x64/share/cmake-3.12/Modules/Platform/Windows-GNU-C.cmake:2 (__windows_compiler_gnu)
D:/cmake-3.12.0-win64-x64/share/cmake-3.12/Modules/CMakeCInformation.cmake:48 (include)
This warning is for project developers. Use -Wno-dev to suppress it.
Configuring Chipmunk2D version 7.0.2
CMake Warning (dev) in CMakeLists.txt:
No cmake_minimum_required command is present. A line of code such as
cmake_minimum_required(VERSION 3.12)
should be added at the top of the file. The version specified may be lower
if you wish to support older CMake versions for this project. For more
information run "cmake --help-policy CMP0000".
This warning is for project developers. Use -Wno-dev to suppress it.
Configuring done
Generating done
Bien sur, je n'ai rien de fonctionnel dans le dossier /bin que j'ai fait.
- Edité par MatthiasPac 17 décembre 2018 à 9:10:41
Merci powerRiCube, mais je bosse sous window(je sais, c'est mal et tout, mais je n'ai pas le temps de reformater), je ne crois pas qu'il y ai d'invite de commande. ^^'
Salut, j'ai installé Mingw. Lorsque j'ai essayé de compiler avec la commande "mingw32-make" la console me réponds qu'il n'y a pas de makefile, ce qui est le cas. Il y a par contre un CMakeLists dans le répertoir de la bibliothèque. Normalement, sous linux, j'utiliserai la commande cmake, c'est d'ailleurs ce qui est proposé dans le tutoriel de la bibliothèque:
cmake -D CMAKE_BUILD_TYPE=Debug . make
J'ai donc un peu cherché dans la doc, mais je n'ai pas trouvé de "mingw32-cmake", et le "man" n'est pas dispo sous window.
Voilà, auriez vous la moindre suggestion pour compiler?
- Avec la console tu vas dans le dossier où se situe le CMakeLists.txt, avec la commande cd . - Avec la commande mkdir , tu créais un dossier, par exemple : mkdir build - Ensuite tu fais cd TonDossierCrééPrécédement - Ensuite : cmake -D CMAKE_BUILD_TYPE=Debug .. - Toujours dans le répertoire, utilise la commande : make ou mingw32-make, si make n'est pas reconnu. - Si tout ce passe bien, le script Makefile va créer les exécutables ; bibliothèques ; objets...
PS : mingw32-cmake n'existe pas c'est un programme à télécharger sur : cmake.org
Je te conseille vivement de réaliser la commande cmake dans un sous-dossier (build dans notre cas) car si ton dossier contient des fichiers de même nom que ceux créés par CMake, CMake va les écraser, et ça peut être problématique .
Reviens vers nous si la procédure ci-dessus ne marche pas
Un grand merci à toi powerRiCube ainsi qu'à tous ceux qui m'ont aidé dans ce forum. La bibliothèque fonctionne enfin sans rajouter tout les headers/sources au projet et ça, c'est grâce à vous.
git is great because Linus did it, mercurial is better because he didn't.
...
git is great because Linus did it, mercurial is better because he didn't.
GitHub