2017-08-04 10 views
0

コマンドラインで指定されたライブラリが存在しない場合、Binutilsの古典的な "ar"ツールは失敗しません。 "ar:< _library_name _>。a:No such file or directory"というメッセージだけが表示されますが、戻りコードはゼロです。
これは、ビルドの問題を分析することが時々非常に難しくなります。なぜなら、結果のバイナリにいくつかの関数がない理由を見つけるのに時間がかかるからです。"ar"ツールで空のライブラリを作成できます

なぜこのような動作ですか?実際には、ほとんどのLinuxユーザーは正しいことが分かりますか?なぜ失敗するオプションを追加してみませんか?

ar -V 
GNU ar (GNU Binutils for Ubuntu) 2.24 
私にとって

答えて

0

作品:

$ 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. 

そうarのバージョンが古すぎます。

+0

おそらく、私は再生条件を詳述する必要があります。私は、コマンドをこのように実行します。 $ arの-r result.a \ '猫/tmp/00000000.lnk_11310 ' \猫:/tmp/00000000.lnk_11310:そのようなファイルやディレクトリ AR:作成result.a $ cat result.a ! 通常、ファイル/tmp/00000000.lnk_11310には* .oファイルのリストが含まれている必要がありますが、空になると(別の問題のため)、「ar」によって空のライブラリが生成されます。 –

関連する問題