[Bug] Impossible de compiler eggdrop sous Mac OS X
#1
Bonjour,

je ne sais pas vers qui aller, alors peut-être qu'il existe parmi vous des utilisateurs de machines Apple comme moi, qui pourraient m'aider. J'essaye d'installer pour test un robot de type 1.6.21 sur mon mac, sachant qu'avec un système Unix on devrait pouvoir s'en sortir (j'avais déja compilé Unreal et Anope  il y a 2 ans sans problèmes. J'avais le systèmer OS-X Lion).

Malheureusement ça foire dès le ./configure : il me dit que je n'ai pas de version TCL d'installée (alors qu'il y a la 8.5 bien visible sous mon nez). Je vous mets juste la partie intéressante:

checking for Tcl library... found /usr/lib/libtcl8.5.dylib
checking for Tcl header... not found
checking whether the Tcl system has changed... yes
configure: error:

 Tcl cannot be found on this system.

 Eggdrop requires Tcl and the Tcl development files to compile.
 If you already have Tcl installed on this system, make sure you
 also have the development files (common package names include
 'tcl-dev' and 'tcl-devel'). If I just wasn't looking
 in the right place for it, re-run ./configure using the
 --with-tcllib='/path/to/libtcl.so' and
 --with-tclinc='/path/to/tcl.h' options.

 See doc/COMPILE-GUIDE's 'Tcl Detection and Installation' section for more
 information.

Pour bien faire iL faudrait que je localise la bibliothèque de Tcl pour les lui passer en paramètres, mais malheureusement je n'y connais rien. Une âme charitable (utilisatrice de Mac, ce qui peut être rare) pourrait-elle m'aider? Mon OS actuel est Mavericks.

Merci et bonne journée,

PC
Répondre Avertir
#2
Bonjour,

Je ne sais pas si sa va t'aider, mais eggdrop a besoin des sources TCL (les headers) et non pas de TCL (les binaires).

Sous linux il s'agit de TCL-DEV.

Tu as essayer de rechercher avec "find / -name tcl.h"?
Répondre Avertir
#3
Je confirme les dires de mcdeffice, c'est bien tcl-dev qui est nécessaire pour une compilation.
Répondre
#4
(30/03/2015, 21:39)CrazyCat a écrit : Je confirme les dires de mcdeffice, c'est bien tcl-dev qui est nécessaire pour une compilation.

je ne sais pas ce qu'est tcl-dev, ni où le trouver. Par-dessus le marché, tcl.tk est inaccessible, et je ne sais pas depuis quand. Finalement je l'ai dans l'os bien profond, la prochaine fois j'achèterai un PC Sad
Répondre Avertir
#5
As-tu essayé de télécharger ActiveTcl sur http://www.activestate.com/activetcl/downloads ?
Répondre
#6
[attachment=296]
(13/12/2015, 14:08)CrazyCat a écrit : As-tu essayé de télécharger ActiveTcl sur http://www.activestate.com/activetcl/downloads ?

Oui. Ca ne change rien. En PJ la liste de tous les endroits où on pourrait trouver quelque chose qui ressemble à libtcl ( en fait, j'ai fait find / | grep libtcl sur tout le disque dur).
Répondre Avertir
#7
Je suis arrivé à avancer légèrement, mais ce n'est pas encore ça. J'ai tapé cette ligne-là:

./configure --with-tclinc='/Library/Frameworks/Tcl.framework/Versions/8.6/Headers/tcl.h' --with-tcllib='/Library/Frameworks/Tcl.framework/Versions/8.6/libtclstub8.6.a'

Le log est ici, et n'a pas posé de problème: [attachment=299]

le make config n'a fourni aucune erreur (voire PJ [attachment=300]). En revanche, le make me donne ceci en fin de compilation:

ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[1]: *** [../eggdrop] Error 1
make: *** [static] Error 2

J'ai mis le log du make en PJ également [attachment=298]. Je suis toujours aussi dég. Merci de votre aide.

PC
Répondre Avertir
#8
J'y ai passé j'après midi: de toute manière il ne faisait pas beau par ici!

La solution est complexe, mais grosso modo le système OSX a tellement évolué depuis la publication de l'eggdrop 1.6.21 que la compilation n'était plus possible en l'état: de nombreux fichiers ont changé de place (tcl.h) ou ont changé de nom, sans compter que le compilateur sous Yosemite ne compile plus comme à l'époque (sous Lion ou peut être Snow Leopard). Le problème du Ld à la fin du make que je mentionne dans mon post précédent signifie simplement: "vous utilisez des objets (fonctions, variables...) qui n'ont pas été définis". Cela apparaît au cours de l'édition des liens, et c'est évidemment rédhibitoire.

Au final et sans trop donner de détails, j'avais un problème avec uniquement 2 fonctions déclarées inline: il a fallu que je modifie les sources et que j'ôte simplement le préfixe inline (à la fois dans le .c et dans .h). Voila, c'est tout: maintenant j'ai réussi à faire marcher un eggdrop de test bourré de tcl sans que ça plante :p

Si des personnes ont le même problème que je décris dans ce thread, prière de me contacter, et je pourrais peut être les aider: soit en passant par ce site, soit par le lien http://www.mircscripts.fr/cgi-bin/monmail.pl?p=Averell car je ne donne pas mon email, avec tous les psychopathes qui traînent sur la toile Smile
Répondre Avertir


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)
Tchat 100% gratuit -Discutez en toute liberté