Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3387 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  ar.exe via cygwin

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

ar.exe via cygwin

n°1520281
docusland
Posté le 26-02-2007 à 16:46:19  profilanswer
 

Bonjour,
En fait je ne comprends pas tres bien le fonctionnment d'ar sous cygwin donc c'était pour savoir si quelqu'un connaissais une astuce pour que ca passe.  
Dans un makefile vachement dense et donc limite illisible , j'ai cet appel : ar x blabla/blabla.a
Je n'arrive pas vraiment à le repérer dans le makefile, mais en gros ca bug. En cherchant un peu j'ai trouvé que ca buggais des que je remontais jusqu'aux différents cygdrives...
http://img172.imageshack.us/img172/6449/72478461lg8.jpg
(ici permier cas marche, second cas foires)
 
Quelqu'un saurait pourquoi ca fait ca ? Si c'est un bug de cygwin? Ou encore s'il aurait une idée sur comment pallier le pb, sachant que bidouiller le makefile serait une des dernieres choses que je voudrais faire n'ayant jamais vraiment regardé jusqu'a maintenant comment ca se construisais.

mood
Publicité
Posté le 26-02-2007 à 16:46:19  profilanswer
 

n°1520351
pango
Posté le 26-02-2007 à 17:42:43  profilanswer
 

Il semble que dans le deuxième cas, tu as un espace entre le deuxième et troisième "../.." ce qui est vraisemblablement incorrect.
 
J'avais eu un problème similaire de compilation sous cygwin, et ça venait des symboles '\' dans le makefile. Ce symbole inséré à la fin d'une ligne indique que la commande continue à la ligne suivante. Visiblement, gnu make ne l'interprète pas de la même manière sous Linux et sous Cygwin.
J'avais alors édité le fichier Makefile et enlevé tous les '\' en faisant attention de bien rétablir la commande sur une seule ligne et ça a fonctionné comme ça...
 

n°1520678
docusland
Posté le 27-02-2007 à 09:10:09  profilanswer
 

Heh, non ce n'est pas une erreur d'espace entre le deuxieme et le troisieme "../.." :D
Mais je vais tenter la suppression de tous les '\' apres tout on peut esperer que ce soit ca, même si j'ai des doutes vu que j'ai du compiler quelques makefiles auparavant et qu'ils ne m'ont causé aucun problème. L'ar.exe ne pourrait pas être en cause??

n°1520681
docusland
Posté le 27-02-2007 à 09:20:29  profilanswer
 

Et la suppression des '\' n'as rien changé .. toujours la même erreur :s

n°1520781
pango
Posté le 27-02-2007 à 11:16:25  profilanswer
 

docusland a écrit :

Heh, non ce n'est pas une erreur d'espace entre le deuxieme et le troisieme "../.." :D


Pardon, je dervais mettre des lunettes  :lol:  
 
Bon, c'est bizzare ton truc...
Et si dans la deuxième commande (celle qui fonctionne pas) tu remplace 'ar x' par 'ls', histoire de verifier que le fichier est bien accessible ??
 
Sinon pour les '\' dans les makefile, je les avais en fait pas viré mais j'avais dû rajouter un espace avant le sybmole '\' car pour une raison que j'ignore:
 
ligne1\
ligne2
 
est correctement interpreté par "ligne1 ligne2" sous linux mais par "ligne1ligne2" sous cygwin (d'ou les erreurs)
 
donc modifier le makefile de la façon suivante si tu as le même problème
ligne1 \
ligne2

n°1521027
docusland
Posté le 27-02-2007 à 15:32:24  profilanswer
 

Ah la la c'est malin du coup j me suis tapé tout le makefile pour rien... ^^. Bon sinon alors pour le ls il marche.
Donc pour eclaircir le probleme dès qu'on remonte dans les cygdrives (disques virtuels si je comprends bien) ca plante.  
C'est à dire :  


pwd --> /cygdrive/c/
ar x op/op/lib/antlr/src/.libs/libantlr.a --> Marche
cd..
ar x c/op/op/lib/antlr/src/.libs/libantlr.a --> Plante


D'autres idées sur les raisons de ce bug? (ou y a-t-il quelqu'un ici qui pourrait tester voir si c'est une limite de cygwin? ar x ne fait qu'extraire les fichiers d'une archive)

Message cité 1 fois
Message édité par docusland le 27-02-2007 à 15:42:09
n°1521223
pango
Posté le 27-02-2007 à 18:35:13  profilanswer
 

docusland a écrit :



pwd --> /cygdrive/c/
ar x op/op/lib/antlr/src/.libs/libantlr.a --> Marche
cd..
ar x c/op/op/lib/antlr/src/.libs/libantlr.a --> Plante




 
ça c'est normal, dans le deuxième cas, ar cherche a extraire les fichiers dans le repertoire cygdrive ce qui n'est pas possible.
par contre, si tu fais:
cd /
ar x cygdrive/c/op/op/lib/antlr/src/.libs/libantlr.a
ça devrait marcher (et les fichiers seront extraits à la racine de cygwin, c'est à dire dans le repertoire windows ou cygwin est installé.
 
Sinon pour être bien clair sur ton problème initial:
Si tu fais:
cd /cygdrive/c/op/op/
ar x ../../../c/op/op/lib/antlr/src/.libs/libantlr.a
le fichier n'est pas trouvé alors que si tu fais:
cd /cygdrive/c/op/op/
ls ../../../c/op/op/lib/antlr/src/.libs/libantlr.a
ça ne pose pas de problème, c'est bien ça ?
 
Et aussi, si tu tapes 'mount' ça te renvoie quoi ?

n°1521375
docusland
Posté le 28-02-2007 à 09:08:48  profilanswer
 


cd /
ar x cygdrive/c/op/op/lib/antlr/src/.libs/libantlr.a


Ca ca plante


cd /cygdrive/c/op/op/
ar x ../../../c/op/op/lib/antlr/src/.libs/libantlr.a


Ca ca plante
 


cd /cygdrive/c/op/op/
ls ../../../c/op/op/lib/antlr/src/.libs/libantlr.a


Ca ca marche
 
Et aussi, si je tape 'mount' ça me renvoie :


C:\cygwin\bin on /usr/bin type system (binmode)
C:\cygwin\lib on /usr/lib type system (binmode)
C:\cygwin on / type system (binmode)
c: on /cygdrive/c type system (binmode,noumount)
d: on /cygdrive/d type system (binmode,noumount)
h: on /cygdrive/h type system (binmode,noumount)
j: on /cygdrive/j type system (binmode,noumount)
k: on /cygdrive/k type system (binmode,noumount)
s: on /cygdrive/s type system (binmode,noumount)

n°1521669
pango
Posté le 28-02-2007 à 14:04:21  profilanswer
 

...bizzare...
J'ai fais des tests avec ar sur mon installation cygwin et pas de problème...
 
Essaye peut-être de réinstaller ar. Dans le setup.exe de cygwin, il est dans le package "binutils" dans la section "devel". Pour ma part, j'ai la version 20060817-1
Sinon essaye aussi d'installer ton programme dans un répertoire plus haut dans l'arborescence afin d'eviter au makefile de remonter jusqu'au repertoire cygdrive... ce serait une façon de contourner le problème.


Message édité par pango le 28-02-2007 à 14:11:50
n°1521861
docusland
Posté le 28-02-2007 à 17:00:05  profilanswer
 

Ah tiens.. on aurait ptet du commencer par la :D J'avais pas la même version d'ar. Pas retrouvé ar dans l'install , mais une nouvelle install toute propre en enlevant toutes les bidouilles de partout semble faire du bien.
Merci pango!


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  ar.exe via cygwin

 

Sujets relatifs
erreurs compilation avec cygwinCygwin et gcc
cygwin[Batch] Expect pour cmd.exe (Win2K Server) sans cygwin
Comment afficher l'etat des processus dans Cygwin?Probleme avec cygwin
probleme pour lancer la fenetre cygwin[cygwin/c++/xerces]accéder a un fichier XML sur le web?
pb avec un "cp" sous cygwin/winxpcreation d'executable sous cygwin
Plus de sujets relatifs à : ar.exe via cygwin


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)