сделать ошибку: Сборка 64-битного GSL в Cygwin

Продолжая с здесь, я пытаюсь создайте 64-битный GSL, используя GCC в Cygwin.

  1. Вызов ./configure (CC=x86_64-w64-mingw32-gcc CFLAGS=-m64 ./configure) проходит нормально, но вызов make install приводит после успешной обработки всей загрузки папок в

    ./.libs/libgsslsiman.a: не удалось прочитать символы: в архиве нет индекса; запустите ranlib, чтобы добавить один

    collect2: ld вернул 1 статус выхода

    Makefile:326: рецепт для целевого файла siman_tsp.exe не удался

    Полный вызов, вызвавший это, был

    Создание всего в симане : Вход в каталог `/cygdrive/f/programming/c/libraries/gslCompiled/gsl-1.15/siman'

    /bin/sh ../libtool --tag=CC --mode=link x86_64-w64-mingw32-gcc -m64 -o siman_tsp.exe siman_tsp.o libgsslsiman.la ../rng/libgslrng.la ../ieee -utils/libgslieeeutils.la ../err/libgslerr.la ../sys/libgslsys.la ../utils/libutils.la -lm

    libtool: ссылка: x86_64-w64-mingw32-gcc -m64 -o .libs/siman_tsp.exe siman_tsp.o ./.libs/libgsslsiman.a ../rng/.libs/libgslrng.a ../ieee-utils/ .libs/libgslieeeutils.a ../err/.libs/libgslerr.a ../sys/.libs/libgslsys.a ../utils/.libs/libutils.a

  2. Следуя совету здесь, я решил запустить ranlib в каталоге ./siman/.libs файла libgslsiman.a. Поскольку это не сработало, я также попытался упаковать его самостоятельно, используя вызов ar -t libgslsiman.a.

Однако это приводит к идентичной ошибке.


person tchakravarty    schedule 07.06.2013    source источник


Ответы (1)


Вы вручную заставили использовать кросс-компилятор. Однако остальная часть цепочки инструментов сборки по умолчанию будет по-прежнему использовать 32-разрядные версии Cygwin вместо 64-разрядных версий MinGW.

Вместо установки CC=... передайте --host x86_64-w64-mingw32 в ./configure, чтобы указать хост-среду (т. е. где будет использоваться библиотека).

person Christoph    schedule 07.06.2013
comment
Ок, отлично. Таким образом, он успешно компилируется в фоновом режиме. Он просит меня пересмотреть выбор между --host и --build. Можете ли вы прокомментировать различие? - person tchakravarty; 07.06.2013
comment
Ну почему не. Задам еще один нубский вопрос. После того, как я сделал make install, я предполагаю, что папка lib - это .libs, но где папка include? Должен ли я просто создать папку с именем include, которая содержит все файлы заголовков, которые я могу найти в папке GSL? - person tchakravarty; 07.06.2013
comment
Хорошо, переделал с --prefix. Спасибо за вашу помощь. :) - person tchakravarty; 07.06.2013
comment
@fgnu: установка --build на i686-pc-cygwin должна убрать предупреждение; см. также stackoverflow.com/questions/5139403/ для разницы между host и build - person Christoph; 07.06.2013