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'
cptpingu
Messages postés3837Date d'inscriptiondimanche 12 décembre 2004StatutModérateurDernière intervention28 mars 2023124 8 oct. 2015 à 14:44
Bonjour.
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 ?
SypayV
Messages postés6555Date d'inscriptionvendredi 28 décembre 2007StatutNon membreDernière intervention19 février 2023 8 oct. 2015 à 16:11
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).
cptpingu
Messages postés3837Date d'inscriptiondimanche 12 décembre 2004StatutModérateurDernière intervention28 mars 2023124 Modifié par cptpingu le 8/10/2015 à 16:23
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.
SypayV
Messages postés6555Date d'inscriptionvendredi 28 décembre 2007StatutNon membreDernière intervention19 février 2023 Modifié par SypayV le 8/10/2015 à 16:40
Il n'y a pas besoin de compiler le sdk. On s'en sert juste pour avoir les en-têtes.
Pour le reste, c'est décrit sur le readme.
Ce qui va changer pour toi, pas besoin non plus d'installer le serveur de jeux (On s'intéresse uniquement à la compilation).
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 ?
cptpingu
Messages postés3837Date d'inscriptiondimanche 12 décembre 2004StatutModérateurDernière intervention28 mars 2023124 9 oct. 2015 à 11:57
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).
SypayV
Messages postés6555Date d'inscriptionvendredi 28 décembre 2007StatutNon membreDernière intervention19 février 2023 9 oct. 2015 à 12:16
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.
SypayV
Messages postés6555Date d'inscriptionvendredi 28 décembre 2007StatutNon membreDernière intervention19 février 2023 Modifié par SypayV le 9/10/2015 à 13:14
J'ai réussi à résoudre mon problème en utilisant le SDK spécifique.
ça va encore ajouter 400 Mo de source dans le projet mais bon ...
Edit : A mon avis ça aurait été plus simple de compiler mathlib moi même, ça revient au même.
Merci pour ton aide et tes retours en tous cas, je te décharge de tout ça.
cptpingu
Messages postés3837Date d'inscriptiondimanche 12 décembre 2004StatutModérateurDernière intervention28 mars 2023124 9 oct. 2015 à 13:15
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 !