mathlib.a a besoin de math.h.
D'autres sources du projet appellent cmath
Voici un extrait des erreurs du linker :
/mathlib.a(mathlib_base.o): In function `MatrixAngles(matrix3x4_t const&, float*)': /mathlib/mathlib_base.cpp:247: undefined reference to `__atan2f_finite'
Difficile de te répondre comme cela, sans voir la totalité (à vrai dire une archive contenant ce qu'il faut, prêt à compiler serait plus simple pour t'aider sur un souci de compilation). Si tu peux mettre une archive téléchargeable, je pourrais essayer de la compiler chez moi.
À première vue, à froid, le -shared n'est-il pas utilisé pour générer un *.so et non un exécutable ?
Je veux bien te passer toute la source (Qui se trouve sur github, il faut juste que je commit mes erreurs dessus), mais pour arriver à compiler le projet il faut télécharger au moins un SDK de 340 Mo.
L'idée c'est bien de générer une bibliothèque dynamique (Il s'agit d'un plugin).
Peux-tu m'écrire une procédure de téléchargement, installation, compilation ?
(En gros, je télécharge quoi, et comment je compile chacun des parties ?)
J'ai à dispo un g++4.6 (sous unbuntu 12.04 64bits), un g++4.4.5 (sous debian squeeze 64bits), qui sont différents de ce que tu as. J'espère que ça n'influera pas.
Edit: Je viens de comprendre que c'est le submodule qui télécharge tout seul le sdk.
Edit : Peu importe la version de g++, au contraire plus ça fonctionne sur différentes et mieux ce sera. Le fait que tu sois sous x64 c'est parfait aussi, mais vu qu'on compile quand même pour x86 il faut penser à avoir les versions x86 de libc.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Je n'ai pas réussi à la compiler (je ne parle pas de linker, mais bien de compiler).
En fait, je ne comprends pas comment ça pourrait compiler en l'état. Par exemple dans Preprocessor.h, il y a un "#include "Platform.h". Or il n'y a pas de "Platform.h" à ce niveau. En faisant un "find", il y a apparemment plein de "Plateform.h" un peu plus haut dans l'arborescence, mais il n'est indiqué nul part avec lequel se lier.
Je précise que j'utilise uniquement le makefile fournit (en tapant un simple make en ligne de commande). S'il y a des chemins personnalisés, liés à un éditeur en particulier, je ne vais pas pouvoir faire grand chose.
(À noter aussi qu'il y a une erreur dans le makefile, il y a une tabulation qui traine ligne 140, et la tabulation a un sens grammatical. Mon éditeur (emacs) a été assez sympa pour me le signaler :p).
Il y a beaucoup de fichiers qui se trouvent dans les SDK.
Le makefile se charge d'utiliser le bon SDK en fonction du jeu pour lequel on fait le plugin.
Donc il inclue les en-têtes spécifiques, tels que Platform.h par rapport au dossier du SDK dont le jeu dépend.
C'est pourquoi il faut utiliser le makefile avec, par exemple, make debug GAME=CSS ou alors make release GAME=CSGO, etc ...
Un simple make n'incluera pas le sdk et donc plein d'erreurs ...
Mais je pense que mon problème vient des changements ABI, encore et toujours ... Apparemment c'est sensé fonctionner correctement avec g++-4.1 ... Je vais ajouter le SDK spécifique à CSS et essayer d'utiliser les bibliothèques fournies dedans, je croise les doigts.
En attendant tu peux réessayer de compiler, si tu veux bien.
J'avais encore des soucis de compilation, malgré l'utilisation des bonnes options à make ^^.
Je ne vois pas trop le rapport entre un nouveau SDK et le link avec -lm, peut être que c'est proprement indiqué/linké dans celui-ci au contraire de l'autre. Mais bon, peu importe, si tu as réussi à résoudre ton souci, tant mieux !