|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre du Club
![]() Inscription : juin 2008 Messages : 43 ![]() |
donc voila je me lance dans l'aprentissage de la lib boost que j'ai compilé (version 1.35).et puis j'éssaye de compiler le premier example de boost.asio avec cette commande :
g++ -I /usr/local/include/boost-1_35/ -I /usr/local/lib/ -lboost_thread-gcc42-mt-1_35 -lboost_system-gcc42-mt-1_35 test.c (la compilation se passe bien) mais le problemme c'est que apres avoir donné les droit d'execution au fichier a.out j'ai cette erreur quand je le lance : bash: ./a.out: Permission non accordée merci d'avance pour votre aide |
|
|
00
|
|
|
#2 |
|
Membre chevronné
![]() ![]() Inscription : mai 2005 Messages : 863 ![]() |
vu le "Permission non accordée" moi je dirais que le chmod n'a pas fonctionné.
ls -l a.out donne quoi ?
__________________
Débugger du code est deux fois plus dur que d'en écrire. Donc, si vous écrivez votre code aussi intelligemment que vous le pouvez, vous n'etes, par définition, pas assez intelligent pour le débugger. |
|
|
00
|
|
|
#3 |
|
Membre du Club
![]() Inscription : juin 2008 Messages : 43 ![]() |
désolé de m'etre trompé de section.
mais voila ce que donne la commande que tu m'a demandé. -rwxr-xr-x 1 paco91 paco91 142246 2008-06-24 19:37 a.out quesque sa veut dire? |
|
|
00
|
|
|
#4 |
|
Membre chevronné
![]() ![]() Inscription : mai 2005 Messages : 863 ![]() |
r pour read, w pour write, x pour execute
le premier rwx c'est pour le propriétaire du fichier le second pour le groupe auquel appartient le propriétaire le troisième pour tout les autre c'est bizarre que tu ne puisse pas l'executer. meme en root tu ne peut pas ? tu compile pas sur un dossier monté sur le réseau? (ce qui mènerai à un problème du genre l'utilisateur local et réseau ne sont pas les meme)
__________________
Débugger du code est deux fois plus dur que d'en écrire. Donc, si vous écrivez votre code aussi intelligemment que vous le pouvez, vous n'etes, par définition, pas assez intelligent pour le débugger. |
|
|
00
|
|
|
#5 |
|
Membre du Club
![]() Inscription : juin 2008 Messages : 43 ![]() |
mème en root je ne réussi pas a éxécuter le a.out et je suis sur mon disque dur normal pas en réseaux j'ai mème essayer dans le répertoire home mais rien a faire.
|
|
|
00
|
|
|
#6 |
|
Membre chevronné
![]() ![]() Inscription : mai 2005 Messages : 863 ![]() |
essaie -lboost_thread -lboost_system
__________________
Débugger du code est deux fois plus dur que d'en écrire. Donc, si vous écrivez votre code aussi intelligemment que vous le pouvez, vous n'etes, par définition, pas assez intelligent pour le débugger. |
|
|
00
|
|
|
#7 |
|
Membre du Club
![]() Inscription : juin 2008 Messages : 43 ![]() |
avec les optionsque tu m'a passer voila l'erreur que j'ai:
/usr/bin/ld: cannot find -lboost_thread collect2: ld a retourné 1 code d'état d'exécution mais c'est normal je n'ai pas ces fichiers chez moi.ils n'existent pas par contre chez moi ils s'appellent: libboost_thread-gcc42-mt libboost_system-gcc42-mt donc j'ai essayé avec les option suivent : -lboost_thread-gcc42-mt -lboost_system-gcc42-mt. l'a compilation se passe bien mème le chmod marche mais j'ai toujour la meme erreur donc : bash: ./a.out: Permission non accordée voila aussi la sortie de la commande ls -l:qui confirme que le chmod a marché -rwxr-xr-x 1 root root 142246 2008-06-25 14:05 a.out. |
|
|
00
|
|
|
#8 | ||
|
Membre chevronné
![]() ![]() Inscription : mai 2005 Messages : 863 ![]() |
ok quand tu installe à l'aide d'un paquet il crée des liens qui abstrait de la version et du compilateur et du type de la lib (mt ou pas). d'où le -lboost_thread
par contre le ls -l dis maintenant que tu as compilé en root, fait attention de bien executer en root aussi essaie de compiler un programme hello world pour voir si le problème est lié à la boost ou non Code :
__________________
Débugger du code est deux fois plus dur que d'en écrire. Donc, si vous écrivez votre code aussi intelligemment que vous le pouvez, vous n'etes, par définition, pas assez intelligent pour le débugger. |
||
|
|
00
|
|
|
#9 |
|
Membre du Club
![]() Inscription : juin 2008 Messages : 43 ![]() |
ben le hello world s'execute normalement c pour sa que j'avais deja essayé et c'est pour celle au fait que j'avais pensé que sa avait un rapport avec la lib boost.sinon je comfirme quand j'ai compilé en root j'ai aussi executer en root et c tjrs parreil.
|
|
|
00
|
|
|
#10 |
|
Membre chevronné
![]() ![]() Inscription : mai 2005 Messages : 863 ![]() |
ouai c'est étrange... essaie alors d'enlever de diminuer le programme exemple.. vire la variable timer par exemple.. si ca marche toujours pas vire tout jusqu'a avoir que le "hello world".. ca voudra dire que ca vient de la boost
__________________
Débugger du code est deux fois plus dur que d'en écrire. Donc, si vous écrivez votre code aussi intelligemment que vous le pouvez, vous n'etes, par définition, pas assez intelligent pour le débugger. |
|
|
00
|
|
|
#11 |
|
Membre du Club
![]() Inscription : juin 2008 Messages : 43 ![]() |
ben voila je vien d'essayer j'ai virer du code petit a petit j'usqua laisser juste le hello world mais tout en gardent les links et j'ai tjrs la meme erreur.et puis l'a j'avoue que j'y comprend plus rien .hier j'ai compilé un hello world normalement et puis la je réessaye et ya rien. en plus j'ai meme essayé sous code blocks l'exemple de boost et un simple hello world et j'ai la meme erreur.je sais pas c'est ptet du a gcc je vais installer le compilo d'intel avec code::blocks pour voir ce que sa donne.
voila que je n'arrive méme plus a executer le script pour install "intel compiler 10" j'ai cette erreur:bash: ./install.sh : /bin/sh : mauvais interpréteur: Permission non accordée. j'ai méme verifié dans mon fstab qu'il n'y avait pas l'option noexec j'ai essayé en metant l'option exec mais rien a faire c'est parreil |
|
|
00
|
|
|
#12 | |
|
Membre chevronné
![]() ![]() Inscription : mai 2005 Messages : 863 ![]() |
Citation:
si c'est du aux lib boost (je parle bien des .so, pas du code que tu as inclus), tu as peut etre trouvé ton erreur: tu as du installer en root ("sudo make install" ou un truc comme ca), et du coup ton utilisateur n'as pas le droit d'accéder à ces libs ? essaie : "ls -l /usr/local/lib/libboost_thread-gcc42-mt.so"
__________________
Débugger du code est deux fois plus dur que d'en écrire. Donc, si vous écrivez votre code aussi intelligemment que vous le pouvez, vous n'etes, par définition, pas assez intelligent pour le débugger. |
|
|
|
00
|
|
|
#13 |
|
Membre du Club
![]() Inscription : juin 2008 Messages : 43 ![]() |
ben oui c vrai que j'ai installé en root sa je m'en souvient bien.
et je ne parlai pas de changer le compilo definitivement mais juste pour essayer de voir eske c vraiment du a boost.donc je vais chager les droits sur les .so en esperant que sa marche. |
|
|
00
|
|
|
#14 |
|
Membre chevronné
![]() ![]() Inscription : mai 2005 Messages : 863 ![]() |
ou mieux, installer les paquets
__________________
Débugger du code est deux fois plus dur que d'en écrire. Donc, si vous écrivez votre code aussi intelligemment que vous le pouvez, vous n'etes, par définition, pas assez intelligent pour le débugger. |
|
|
00
|
|
|
#15 |
|
Membre du Club
![]() Inscription : juin 2008 Messages : 43 ![]() |
dans les paquet c une ancienne version(1.34.1) ou il n'y a pas asio alors que la partie de la lib dont j'ai le plus besoin.en plus c pour l'utiliser sur un systeme embarqué a l'avenir.donc je dois imperativement réussir a compiler la lib correctement (question d'optimisation) et me passer des paquets.
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com