如果命令行中指定的某些库不存在,来自 Binutils 的经典"ar"工具不会失败。 它只显示消息"ar: <_library_name_>.a: 没有这样的文件或目录",但返回码为零。
这使得有时很难分析构建问题,因为人们花费大量时间来查找生成的二进制文件中缺少某些函数的原因。
为什么会有这样的行为?真的大多数 Linux 用户都认为这是正确的吗?为什么不至少添加一个失败选项?
ar -V
GNU ar (GNU Binutils for Ubuntu) 2.24
对我有用:
$ 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
版本太旧了。