В моей попытке скомпилировать GCC я заметил, что хотя ./configure
не выдает сообщений об ошибках и возвращает код ошибки 0, в config.log
по-прежнему регистрируются ошибки, которые впоследствии приводят к сбою make
. Итак, почему configure
уже не выходит из строя? Или make
позже изменяет config.log
?
Почему `configure` не завершается ошибкой, а `config.log` содержит ошибки?
Ответы (1)
config.log
содержит выходные данные всех configure
зондов. Ожидается, что некоторые из них потерпят неудачу. Например, Autoconf часто ищет несколько различных возможных альтернативных реализаций определенной функциональности, и ожидается, что некоторые из них потерпят неудачу в зависимости от характеристик вашей системы.
Таким образом, автор сценария Autoconf configure.ac
должен явным образом отказаться от этапа настройки, если результаты не являются жизнеспособными. Некоторые люди делают это, когда пишут свои configure.ac
, а некоторые нет. Иногда во время настройки может быть довольно сложно узнать, является ли конкретный набор выводов жизнеспособным. Есть также разумный аргумент, что легче диагностировать проблемы во время сборки позже, чем выдавать сообщение об ошибке из configure
и заставлять людей искать подробности в config.log
. Это особенно верно, если проблемы относительно неясны.
Краткий ответ заключается в том, что configure
не дал сбой, потому что люди, которые написали скрипт configure, который вы запускаете, не запрограммировали его на сбой для конкретных ошибок, которые вы видите по той или иной причине.