autotools временные файлы - PullRequest
       3

autotools временные файлы

12 голосов
/ 26 августа 2011

Я пытаюсь отладить проблему с автоинструментами для проекта с открытым исходным кодом, которая не выполняется на этапе настройки.Я хотел бы увидеть код / ​​исполняемый файл, который пытается запустить configure.

Тем не менее, файл config.log показывает только то, что что-то не получилось (не тот код, который он пытался скомпилировать), и я не знаю, где хранятся временные исполняемые файлы (и в любом случае они, вероятно, быстро удаляются).

Есть ли способ получить автоинструменты для хранения своих временных файлов?Неважно, на каком уровне это указано - либо с аргументами для настройки, с аргументами autoconf, когда он генерирует configure, либо даже с некоторым вызовом m4.

EDIT Когда что-то не получается,configure.log выглядит так:

configure:3285: checking whether we are cross compiling
configure:3293: gcc -o conftest.exe -DU_STATIC_IMPLEMENTATION -O3   conftest.c  >&5
configure:3297: $? = 0
configure:3304: ./conftest
configure:3308: $? = 1
configure:3315: error: in `/home/bobthebuilder/Development/icu/build':
configure:3317: error: cannot run C compiled programs.
If you meant to cross compile, use `--host'.
See `config.log' for more details

1 Ответ

10 голосов
/ 26 августа 2011

Это полный взлом, но он работает. Вы можете редактировать скрипт настройки; в частности, вы можете редактировать подпрограмму ac_fn_c_try_compile (). Найдите эту строку в скрипте настройки, затем отредактируйте ее, добавив эти строки сразу после первоначального объявления ac_fn_c_try_compile:

ac_fn_c_try_compile ()
{
  echo "=================== " >> config.log
  echo "conftest.$ac_ext is " >> config.log
  cat conftest.$ac_ext >> config.log 
  echo "=================== " >> config.log

Это заставит conftest. $ Ac_ext (т.е. conftest.c) каждый раз печататься в файле config.log. Имейте в виду, что каждый раз, когда вы перезапускаете autoconf (если вы это делаете) или autoreconf, этот скрипт пользовательской настройки перезаписывается. Вероятно, есть способ угнать определение ac_fn_c_try_compile.

...