Mon PATH n'est pas respecté ! Ca ne va path !
Bonjour
mon PATH donne l'accès à /usr/lib64 qui contient la librairie crt1.o
Or si je fais: whereis crt1.o il ne me la trouve pas, pourquoi !!!
Détails:
PATH=.:/usr/local:/usr/bin/X11:/etc:/usr/etc:/usr/ucb:/usr/ccs/bin:/lib:/usr/bin:/bin:/usr/lib:/usr/lib64:/home/local: ...
home> ls /usr/lib64/crt1.o
/usr/lib64/crt1.o
home> whereis crt1.o
crt1:
merci de votre aide !
mon PATH donne l'accès à /usr/lib64 qui contient la librairie crt1.o
Or si je fais: whereis crt1.o il ne me la trouve pas, pourquoi !!!
Détails:
PATH=.:/usr/local:/usr/bin/X11:/etc:/usr/etc:/usr/ucb:/usr/ccs/bin:/lib:/usr/bin:/bin:/usr/lib:/usr/lib64:/home/local: ...
home> ls /usr/lib64/crt1.o
/usr/lib64/crt1.o
home> whereis crt1.o
crt1:
merci de votre aide !
A voir également:
- Mon PATH n'est pas respecté ! Ca ne va path !
- Instagram votre compte ne respecte pas les règles de la communauté - Guide
- Offset path illustrator français - Forum Illustrator
- Path of exile 2 - Guide
- Superposition d'objets - Forum Illustrator
- Id chinois one piece fighting path - Forum Jeux vidéos smartphones
4 réponses
Bonjour,
tout simplement parce que la commande whereis ne fait des recherche que dans les repertoires par defaut de linux et n'utilise pas la variable $PATH.
tape "man whereis" pour verifier
Tu devra te faire un petit script shell personnalisé à base de find pour obtenir une recherche particuliere. Tu pourra te créer un répertoire bin dans ton $HOME et l'ajouter a ton .bashrc perso par exemple, si bash est ton shell par defaut, ou a /etc/profile si tu es un faineant...
@+
tout simplement parce que la commande whereis ne fait des recherche que dans les repertoires par defaut de linux et n'utilise pas la variable $PATH.
tape "man whereis" pour verifier
Tu devra te faire un petit script shell personnalisé à base de find pour obtenir une recherche particuliere. Tu pourra te créer un répertoire bin dans ton $HOME et l'ajouter a ton .bashrc perso par exemple, si bash est ton shell par defaut, ou a /etc/profile si tu es un faineant...
@+
Salut,
crt1.o n'est pas un éxetutable, mais un fichier objet utlisé par ld qui va
permettre le lancement d'un processus et appeler la fonction main. Il s'agit
d'un fichier objet qui ne peut être que lié statiquement dans le fichier exécutable.
Ca sert donc à rien de jouer avec PATH pour le trouver.
A+, crabs
crt1.o n'est pas un éxetutable, mais un fichier objet utlisé par ld qui va
permettre le lancement d'un processus et appeler la fonction main. Il s'agit
d'un fichier objet qui ne peut être que lié statiquement dans le fichier exécutable.
Ca sert donc à rien de jouer avec PATH pour le trouver.
A+, crabs
Merci tous, Merci crabs
c'est vrai que which ne me dit rien sur mon crt1.o
En fait, mon vrai pb est que lors d'une édition de lien (ld) le crt1.o n'est pas trouvé ! Il le cherche dans /usr/lib alors qu'il est bien dans /usr/lib64 qui lui est déclaré dans mon PATH et mon LD_LIBRARY_PATH
Alors comment faire !!! Pourquoi ne le trouve-t-il pas !
Voici le résultat de la compil:
make
ifort -o iapetus compo.o iniout.o endout.o corps.o thermo.o reduction.o chgbase.o triage.o output.o dataread.o iniden.o verbase.o inibase.o filtre.o conduc.o sortie.o newton.o lissage.o evaluation.o inverseD.o systeme.o fctpar.o produit.o
ld: cannot open /usr/lib/crt1.o: No such file or directory
ls /usr/lib64/crt*
/usr/lib64/crt1.o /usr/lib64/crti.o /usr/lib64/crtn.o
PATH=/usr/lib64:.:/usr/local:/usr/bin/X11:/etc:/usr/etc ....
LD_LIBRARY_PATH=/usr/lib64:/opt/intel_fc_80/lib:/opt/intel_cc_80/lib
MErci de ton aide
c'est vrai que which ne me dit rien sur mon crt1.o
En fait, mon vrai pb est que lors d'une édition de lien (ld) le crt1.o n'est pas trouvé ! Il le cherche dans /usr/lib alors qu'il est bien dans /usr/lib64 qui lui est déclaré dans mon PATH et mon LD_LIBRARY_PATH
Alors comment faire !!! Pourquoi ne le trouve-t-il pas !
Voici le résultat de la compil:
make
ifort -o iapetus compo.o iniout.o endout.o corps.o thermo.o reduction.o chgbase.o triage.o output.o dataread.o iniden.o verbase.o inibase.o filtre.o conduc.o sortie.o newton.o lissage.o evaluation.o inverseD.o systeme.o fctpar.o produit.o
ld: cannot open /usr/lib/crt1.o: No such file or directory
ls /usr/lib64/crt*
/usr/lib64/crt1.o /usr/lib64/crti.o /usr/lib64/crtn.o
PATH=/usr/lib64:.:/usr/local:/usr/bin/X11:/etc:/usr/etc ....
LD_LIBRARY_PATH=/usr/lib64:/opt/intel_fc_80/lib:/opt/intel_cc_80/lib
MErci de ton aide
Notons au passage que les commandes locate, slocate (combinées avec updatedb), et which servent aussi à localiser des fichiers...
Mais à part ça crabs a parfaitement résumé le problème...
Mais à part ça crabs a parfaitement résumé le problème...
Euh en tout cas le "." en début de PATH c'est un peu abusif. Imagine que quelqu'un crée un executable "cd" dans ton home c'est vraiment très dommage (surtout si celui-ci est malveillant :p).
Bon sinon, comme dis précédemment, dans ton .bashrc (ou .bash_login) il faut bien définir tes variables ainsi :
Bonne chance
Bon sinon, comme dis précédemment, dans ton .bashrc (ou .bash_login) il faut bien définir tes variables ainsi :
export PATH=${PATH}:/un/repertoire:/un/repertoire2
Bonne chance