Инструмент "ar" позволяет создавать пустую библиотеку

Классический инструмент "ar" из Binutils не завершается ошибкой, если какая-либо библиотека, указанная в командной строке, не существует. Отображается только сообщение "ar: <_library_name _>. A: Нет такого файла или каталога", но код возврата равен нулю.
Из-за этого иногда очень сложно анализировать проблемы сборки, поскольку каждый тратит много времени, чтобы выяснить, почему некоторые функции отсутствуют в полученном двоичном файле.

Почему такое поведение? Неужели большинство пользователей Linux считают это правильным? Почему бы не добавить хотя бы один вариант, чтобы потерпеть неудачу?

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

1 ответ

Работает для меня:

$ 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 слишком стар

Другие вопросы по тегам