2017-08-04 4 views
0

L'outil "ar" classique de Binutils n'échoue pas si une bibliothèque spécifiée dans la ligne de commande n'existe pas. Il affiche uniquement le message "ar: < _library_name _>. A: Aucun fichier ou répertoire", mais le code de retour est zéro.
Cela rend parfois très difficile l'analyse des problèmes de construction, car on passe beaucoup de temps à trouver pourquoi certaines fonctions manquent dans le binaire résultant.L'outil "ar" permet la création d'une bibliothèque vide

Pourquoi un tel comportement? Vraiment les utilisateurs les plus Linux trouvent cela correct? Pourquoi ne pas ajouter au moins une option pour échouer?

ar -V 
GNU ar (GNU Binutils for Ubuntu) 2.24 

Répondre

0

Works pour moi:

$ ar unknown.a 2>/dev/null || echo 'ko' 
ko 

$ ar -V 
GNU ar (GNU Binutils) 2.28.0.20170506 
Copyright (C) 2017 Free Software Foundation, Inc. 
This program is free software; you may redistribute it under the terms of 
the GNU General Public License version 3 or (at your option) any later version. 
This program has absolutely no warranty. 

probable que votre version de ar est trop ancien.

+0

Probablement, je dois élaborer les conditions de reproduction. Je lance la commande de cette façon: $ ar -r résultat.Procédé \ 'cat /tmp/00000000.lnk_11310 \' chat: /tmp/00000000.lnk_11310: Aucun fichier ou répertoire ar: créer résultat.Procédé $ cat résultat.a ! Normalement, le fichier /tmp/00000000.lnk_11310 doit contenir la liste des fichiers * .o, mais lorsqu'il est vide (en raison d'un autre problème), alors "ar" produit la bibliothèque vide. –