A voir également:
- Undefined reference to <nom-fonction>
- Fonction si et - Guide
- Reference pto - Accueil - Box & Connexion Internet
- Qwerty to azerty - Guide
- Mb to mo ✓ - Forum Matériel & Système
- Téléchargez cette image pour trouver le nom du fichier. il correspond au nom de cette loutre. comment s'appelle-t-elle ? - Forum Windows
24 réponses
mamiemando
Messages postés
33407
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
29 novembre 2024
7 806
28 nov. 2011 à 19:44
28 nov. 2011 à 19:44
Qu'est ce que tu compiles et avec quelle distribution linux ?
En gros ce que tu compiles fait appel à des fonctions (posterFind...) déclarées, mais qui devraient être fournies par des librairies (fichiers .so) qui sont absent de ton système. Du coup la compilation plante.
Dans le Makefile, la référence à libcomLib est faite avec l'option -lcomLib, mais si elle est référencée, c'est qu'elle est utile donc ne modifie pas le makefile !
A priori avant de compiler, tu es sensé lancer ./configure pour vérifier que tout ce qui est nécessaire à la compilation est correctement installé. Concrètement si le ./configure échoue, c'est que tu dois installer d'autres choses au préalable. Si le ./configure passe, mais pas la compilation, c'est qu'il y a une erreur dans les sources que tu compiles (ou dans son Makefile), mais c'est peu probable.
Plus de détails sur la compilation ici :
http://www.mistra.fr/tutoriel-linux-compiler.html
Mais garde à l'esprit que sous linux, c'est ultra exceptionnel qu'on compile quelque chose à la main : on essaye en priorité d'installer la librairie ou le logiciel en question via le gestionnaire de paquets.
Bonne chance
En gros ce que tu compiles fait appel à des fonctions (posterFind...) déclarées, mais qui devraient être fournies par des librairies (fichiers .so) qui sont absent de ton système. Du coup la compilation plante.
Dans le Makefile, la référence à libcomLib est faite avec l'option -lcomLib, mais si elle est référencée, c'est qu'elle est utile donc ne modifie pas le makefile !
A priori avant de compiler, tu es sensé lancer ./configure pour vérifier que tout ce qui est nécessaire à la compilation est correctement installé. Concrètement si le ./configure échoue, c'est que tu dois installer d'autres choses au préalable. Si le ./configure passe, mais pas la compilation, c'est qu'il y a une erreur dans les sources que tu compiles (ou dans son Makefile), mais c'est peu probable.
Plus de détails sur la compilation ici :
http://www.mistra.fr/tutoriel-linux-compiler.html
Mais garde à l'esprit que sous linux, c'est ultra exceptionnel qu'on compile quelque chose à la main : on essaye en priorité d'installer la librairie ou le logiciel en question via le gestionnaire de paquets.
Bonne chance
Bonjour,
Merci d'avoir pris le temps de voir et de répondre à ma question mamiemando.
Je suis sous Ubuntu 11.10 et je compile le package tclserv se trouvant dans robotpkg.
J'ai trouvé la solution à mon problème: Il y avait 2 versions de libtool (j'ai vu dans le build.log que les erreurs venaient après avoir fait appel à libtool) installées (1 ancienne 1.5.3 dans le système et une autre 2.2.6b (la plus à jour) dans le dossier robotpkg) donc ça a créé une confusion d'ou le problème, en fin je crois. Parce que dés que j'ai désinstallé les deux versions et réinstallé la plus à jour dans le système ça a marché (la compilation avait réussie)
Maintenant un autre problème est survenu. Lors de l'installation de eltclsh l'erreur suivante apparait: cheking for tk libraby ....... nor found
alors que les libtcl et libtk sont presents dans le pc (/usr/ local/lib)
le make trouve libtcl le plus normalement possible (checking for tcl library... -L/usr/local/lib -ltcl8.5) mais pas le tk qui est dans le même repertoire. Pourquoi?
Quelqu'un a t-il une idée?
Merci
Merci d'avoir pris le temps de voir et de répondre à ma question mamiemando.
Je suis sous Ubuntu 11.10 et je compile le package tclserv se trouvant dans robotpkg.
J'ai trouvé la solution à mon problème: Il y avait 2 versions de libtool (j'ai vu dans le build.log que les erreurs venaient après avoir fait appel à libtool) installées (1 ancienne 1.5.3 dans le système et une autre 2.2.6b (la plus à jour) dans le dossier robotpkg) donc ça a créé une confusion d'ou le problème, en fin je crois. Parce que dés que j'ai désinstallé les deux versions et réinstallé la plus à jour dans le système ça a marché (la compilation avait réussie)
Maintenant un autre problème est survenu. Lors de l'installation de eltclsh l'erreur suivante apparait: cheking for tk libraby ....... nor found
alors que les libtcl et libtk sont presents dans le pc (/usr/ local/lib)
le make trouve libtcl le plus normalement possible (checking for tcl library... -L/usr/local/lib -ltcl8.5) mais pas le tk qui est dans le même repertoire. Pourquoi?
Quelqu'un a t-il une idée?
Merci
mamiemando
Messages postés
33407
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
29 novembre 2024
7 806
Modifié par mamiemando le 29/11/2011 à 10:33
Modifié par mamiemando le 29/11/2011 à 10:33
Le truc c'est que libtool, libtcl et libtk sont disponibles via les paquets, donc il faut éviter de les compiler à la main (car c'est galère, ce ne sera pas mis à jour etc...).
De manière générale, tu dois en priorité installer ces librairies via les paquets (suffixés "-dev" si c'est pour compiler, et généralement préfixés "lib").
Tu peux retrouver avec apt-cache et apt-file les bons paquets :
http://www.mistra.fr/tutoriel-linux-apt.html#h2-rechercheanbsp-dans-les-paquets
Pour installer apt-file :
On fait quelques recherches :
... pour en déduire quoi installer :
Bonne chance
De manière générale, tu dois en priorité installer ces librairies via les paquets (suffixés "-dev" si c'est pour compiler, et généralement préfixés "lib").
Tu peux retrouver avec apt-cache et apt-file les bons paquets :
http://www.mistra.fr/tutoriel-linux-apt.html#h2-rechercheanbsp-dans-les-paquets
Pour installer apt-file :
sudo apt-get update sudo apt-get upgrade sudo apt-get install apt-file sudo apt-file update
On fait quelques recherches :
apt-cache search libtool | grep libtool apt-file search libtk | grep ".so$" apt-file search libtcl | grep ".so$"
... pour en déduire quoi installer :
sudo apt-get install libtool tcl-dev tk-dev
Bonne chance
Merci
J'ai essayé de les installer automatiquement mais le problème persiste
( tk library not found alors qu'elle est dans /usr/local/lib )
Que faire?
J'ai essayé de les installer automatiquement mais le problème persiste
( tk library not found alors qu'elle est dans /usr/local/lib )
Que faire?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
mamiemando
Messages postés
33407
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
29 novembre 2024
7 806
29 nov. 2011 à 20:49
29 nov. 2011 à 20:49
Normalement elle ne devrait plus être dans /usr/local/lib. Tu es sensé l'avoir déjà dans /usr/lib si tu as correctement installé le paquet.
Lance :
Et reporte-moi le résultat de :
Bonne chance
Lance :
sudo updatedb
Et reporte-moi le résultat de :
locate libtk | grep ".so$"
Bonne chance
Bonjour,
Le résultat de la commande locate libtk | grep ".so$" est:
/home/sya/Bureau/openrobots/lib/libtk8.5.so
/home/sya/Documents/Doc_/stages/Genom/Packages/tk8.5.10/unix/libtk8.5.so
/home/sya/Documents/Doc_/Stages/Genom/Packages/tk8.5.10/unix/build/libtk8.5.so
/home/sya/Documents/openrobot/lib/libtk8.5.so
/home/sya/Documents/openrobots/lib/libtk8.5.so
/usr/lib/libtk.so
/usr/lib/libtk8.5.so
/usr/lib/libreoffice/basis3.4/program/libtkli.so
/usr/local/lib/libtk8.5.so
Le résultat de la commande locate libtk | grep ".so$" est:
/home/sya/Bureau/openrobots/lib/libtk8.5.so
/home/sya/Documents/Doc_/stages/Genom/Packages/tk8.5.10/unix/libtk8.5.so
/home/sya/Documents/Doc_/Stages/Genom/Packages/tk8.5.10/unix/build/libtk8.5.so
/home/sya/Documents/openrobot/lib/libtk8.5.so
/home/sya/Documents/openrobots/lib/libtk8.5.so
/usr/lib/libtk.so
/usr/lib/libtk8.5.so
/usr/lib/libreoffice/basis3.4/program/libtkli.so
/usr/local/lib/libtk8.5.so
mamiemando
Messages postés
33407
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
29 novembre 2024
7 806
30 nov. 2011 à 10:24
30 nov. 2011 à 10:24
Ben tu vois bien que libtk est encore dans /usr/local/lib alors qu'il devrait être uniquement dans /usr/lib. Je ne pense pas que ce qu'y est dans ~/Documents interfère sauf mais en tout cas :
... n'ont pas lieu d'être non plus.
Bonne chance
/home/sya/Documents/openrobot/lib/libtk8.5.so /home/sya/Documents/openrobots/lib/libtk8.5.so
... n'ont pas lieu d'être non plus.
Bonne chance
mamiemando
Messages postés
33407
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
29 novembre 2024
7 806
30 nov. 2011 à 20:07
30 nov. 2011 à 20:07
Peux-tu me donner le lien vers les sources que tu cherches à compiler (il y a plusieurs trucs qui s'appellent openrobot) ?
Bonjour,
Je m'excuse pour le retard j'avais un problème de connexion.
Bon. Le package s'appelle eltclsh-1.12.tar.gz, et en essayant de le compiler il vous sortira l'erreur de dépendance (tcl/tk 8.5 non trouvé), enfin c'est ce qui s'est passé dans mon cas!
Je m'excuse pour le retard j'avais un problème de connexion.
Bon. Le package s'appelle eltclsh-1.12.tar.gz, et en essayant de le compiler il vous sortira l'erreur de dépendance (tcl/tk 8.5 non trouvé), enfin c'est ce qui s'est passé dans mon cas!
Bogomips
Messages postés
123
Date d'inscription
mardi 5 avril 2011
Statut
Membre
Dernière intervention
18 mars 2015
16
Modifié par Bogomips le 4/12/2011 à 11:10
Modifié par Bogomips le 4/12/2011 à 11:10
Salut
As-tu regardé le fichier "config.log" créé automatiquement pendant
la configuration d'une source ?
Peut-être qu'une nouvelle création de "configure" pourrait corriger ce problème en utilisant "autogen.sh" qui se trouve dans ton archive "eltclsh".
As-tu regardé le fichier "config.log" créé automatiquement pendant
la configuration d'une source ?
Peut-être qu'une nouvelle création de "configure" pourrait corriger ce problème en utilisant "autogen.sh" qui se trouve dans ton archive "eltclsh".
Bogomips
Messages postés
123
Date d'inscription
mardi 5 avril 2011
Statut
Membre
Dernière intervention
18 mars 2015
16
4 déc. 2011 à 12:22
4 déc. 2011 à 12:22
Ok.
As-tu regardé dans "config.log" pour "cheking for tk libraby ....... nor found" ?
Normalement,les détails de cette erreur sont indiqués dans ce fichier.
As-tu regardé dans "config.log" pour "cheking for tk libraby ....... nor found" ?
Normalement,les détails de cette erreur sont indiqués dans ce fichier.
Bogomips
Messages postés
123
Date d'inscription
mardi 5 avril 2011
Statut
Membre
Dernière intervention
18 mars 2015
16
Modifié par Bogomips le 4/12/2011 à 12:42
Modifié par Bogomips le 4/12/2011 à 12:42
J'ai essayé "eltclsh"(avec Slackware) et tk est trouvé sans problème
As-tu essayé:
ou
As-tu essayé:
./configure LDFLAGS="-L/usr/local/lib" CPPFLAGS="-I/usr/local/include"
ou
./configure CFLAGS="-L/usr/local/lib -I/usr/local/include"
Bonjour,
J'ai essayé les deux commandes indiquées et ça n'a pas marché!
Alors j'ai parcouru le fichier config.log et voila ce que j'ai trouvé:
"configure: 11505: checking for tk library
configure: 11528: /usr/bin/gcc -o conftest -03 -DNDEBUG -I/usr/local/include -I/usr/local/include conftest.c -L/usr/local/lib -ltk8.5 -R/usr/local/lib -L/usr/local/lib -ltcl8.5 >&5
gcc: error: unrecognized option '-R' "
donc, j'ai ouvert le fichier configure dans la ligne indiquée et au lieu de :
LIBS="${LIBS} ${TK_LIB_SPEC} ${TCL_LIB_SPEC}" j'ai mis
LIBS="${LIBS} ${TK_LIB_SPEC} " et ça a marché, eltclsh s'est installé.
Mais (il y a apparemment toujours un mais) lorsque je lance eltclsh il se lance oui mais avec une erreur:
$eltclsh
Cannot read termcap database;
using dumb terminal settings.
eltclsh1.12 - Copyright (C) 2001-2011 LAAS-CNRS
eltclsh >
Voila! quelqu'un a t-il une idée?
J'ai essayé les deux commandes indiquées et ça n'a pas marché!
Alors j'ai parcouru le fichier config.log et voila ce que j'ai trouvé:
"configure: 11505: checking for tk library
configure: 11528: /usr/bin/gcc -o conftest -03 -DNDEBUG -I/usr/local/include -I/usr/local/include conftest.c -L/usr/local/lib -ltk8.5 -R/usr/local/lib -L/usr/local/lib -ltcl8.5 >&5
gcc: error: unrecognized option '-R' "
donc, j'ai ouvert le fichier configure dans la ligne indiquée et au lieu de :
LIBS="${LIBS} ${TK_LIB_SPEC} ${TCL_LIB_SPEC}" j'ai mis
LIBS="${LIBS} ${TK_LIB_SPEC} " et ça a marché, eltclsh s'est installé.
Mais (il y a apparemment toujours un mais) lorsque je lance eltclsh il se lance oui mais avec une erreur:
$eltclsh
Cannot read termcap database;
using dumb terminal settings.
eltclsh1.12 - Copyright (C) 2001-2011 LAAS-CNRS
eltclsh >
Voila! quelqu'un a t-il une idée?
Bogomips
Messages postés
123
Date d'inscription
mardi 5 avril 2011
Statut
Membre
Dernière intervention
18 mars 2015
16
Modifié par Bogomips le 6/12/2011 à 11:09
Modifié par Bogomips le 6/12/2011 à 11:09
"curses/termcap" est peut-être manquant. Il faut regarder du côté de ncurses avec ncurses-base,ncurses-bin,ncurses-term,libncurses5 ou libncurses5-dev.
J'ai essayé de les installer, mais ils sont déjà presents dans mon pc avec une version la plus à jour (sauf pour ncurses-term qui n'y était pas, je l'ai installé mais rien n'a changé)
Bogomips
Messages postés
123
Date d'inscription
mardi 5 avril 2011
Statut
Membre
Dernière intervention
18 mars 2015
16
6 déc. 2011 à 11:34
6 déc. 2011 à 11:34
Ok.
Ensuite, as-tu reconfiguré et recompilé "eltclsh" ?
Ensuite, as-tu reconfiguré et recompilé "eltclsh" ?
Bogomips
Messages postés
123
Date d'inscription
mardi 5 avril 2011
Statut
Membre
Dernière intervention
18 mars 2015
16
6 déc. 2011 à 11:41
6 déc. 2011 à 11:41
Normalement, dans "eltclsh","configure" vérifie la présence de "libtermcap".
Bon. Je n'ai trouvé qu'une seule occurrence de termcap et pas de libtermcap.
J'ai réecrit toute la boucle contenant termcap, je ne sais pas si elle y était avant d'installer ncurses-term parce que le problème persiste!
for ac_lib in '' termcap ncurses; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_tputs=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if test "${ac_cv_search_tputs+set}" = set; then : break fi done
J'ai réecrit toute la boucle contenant termcap, je ne sais pas si elle y était avant d'installer ncurses-term parce que le problème persiste!