Почему при сборке liblzma не удается найти библиотеку?

Я установил mingw с их сайта. Я установил пакет разработчика, который поставляется с iconv и intl, msys и всем остальным.

Я запускаю ./configure, а затем make install. При линковке печатает:

 ../../src/liblzma/liblzma.la  -lintl
libtool: link: cannot find the library `/home/keith/staged/mingw32/lib/libiconv.
la' or unhandled argument `/home/keith/staged/mingw32/lib/libiconv.la'
make[2]: *** [xzdec.exe] Error 1

Я понятия не имею, кто такой Кит или почему он ищет там библиотеку. Я попробовал настройки CCFLAGS CXXFLAGS и LDFLAGS для моего включения и папки библиотеки /usr/local/lib

Нет сигары .. есть идеи, почему это происходит и как я могу это исправить?


person Brandon    schedule 13.05.2014    source источник


Ответы (2)


Это известная проблема с пакетом MinGW gettext. Кит Маршалл, упомянутый «кит», немного объясняет, что происходит в отчет об ошибке на сайте MinGW SourceForge.

Довольно некрасивый обходной путь — фактически создать папку /home/keith/staged/mingw32, а затем добавить символические ссылки на нужные папки в /mingw, т.е.:

mkdir -p /home/keith/staged/mingw32
cd $_
ln -s /mingw/bin bin
ln -s /mingw/lib lib

(Обратите внимание, что если /mingw не существует в вашей файловой системе, вы можете создать его, добавив эту строку в конец /etc/fstab:

C:/MinGW                /mingw

если, конечно, у вас установлен MingW в C:\MinGW. Закройте окно терминала и повторно запустите msys.bat, чтобы изменения вступили в силу.)

Затем вам нужно будет загрузить libiconv.la у человека, который удобно подготовил файл, и скопируйте его в /home/keith/staged/mingw32/lib/.

Это ужасный хак, но он сработал для меня.

person Community    schedule 12.06.2014

Согласно этому отчету об ошибке, что-то не так с последним пакетом gettext (gettext- 0.18.3.2).

Я пробовал следующие 2 способа. Кажется, оба работают хорошо.

  • Удалить плохие файлы

    pushd /mingw/lib/ && rm libasprintf.la libgettextlib.la libgettextpo.la libgettextsrc.la libintl.la && popd

    Или вы можете просто переименовать их. Фактически, вы увидите /home/keith/... в этих файлах *.la, если откроете их в текстовом редакторе.

  • Используйте пакет gettext-0.18.3.1

    Закройте MSYS и выполните следующую команду, чтобы использовать более старую версию: mingw-get upgrade "gettext=0.18.3.1-1*" с PATH=C:\mingw\bin;%PATH%, конечно.

person Bin S    schedule 13.06.2014