Как собрать GNU `libiconv` для Windows? - PullRequest
9 голосов
/ 29 апреля 2010

Я хочу создать статическую библиотеку (* .LIB-файл) GNU libiconv на окнах, которые будут использоваться с другими библиотеками в Visual C ++. Другие библиотеки, которые я использую, построены с опцией «MultiThreaded DLL» (/ MD). Итак, мне нужно собрать libiconv с той же опцией.

Проблема в том, что libiconv использует систему сборки GNU, и я хочу скомпилировать с параметром / MD. Вы можете увидеть исходную структуру libiconv здесь:
http://cvs.savannah.gnu.org/viewvc/libiconv/?root=libiconv

г. Златкович поддерживает порт windows GNU libiconv для libxml2

Вы можете увидеть их здесь:

FTP: //xmlsoft.org/libxml2/win32/iconv-1.9.2.win32.zip

Я не могу использовать его порт. Мне нужно собрать из последней версии libiconv-1.13. Интересно, как этот парень перенес это? Может кто-нибудь сказать, пожалуйста, как собрать * .lib из этого и скомпилировать его с помощью MSVC?

EDIT:

На самом деле мне нужно собрать еще несколько библиотек GNU с такими же настройками. Итак, если я получу решение для одной библиотеки. Я могу сделать то же самое для всех остальных.

Ответы [ 4 ]

9 голосов
/ 17 апреля 2012

Я обнаружил, что PARK Youngho's Как создать libiconv с Microsoft Visual Studio на Проект кода завершен и чист (для VS2010 и GNU libiconv 1.14) ).

3 голосов
/ 03 января 2011

Небольшое дополнение к вашему ответу. У меня была та же проблема, и я обнаружил, что решение MinGW + MSYS было идеальным.

Однако мне нужно было пойти немного дальше и сгенерировать также .lib-файл, чтобы иметь возможность связать полученную DLL.

Вот что я нашел:

  • создать файл .def из dll с помощью dumpbin (инструмент Visual Studio).

  • сгенерируйте файл .lib из .def с помощью программы lib (также для Visual Studio)

Это позволяет вам при необходимости указать некоторые флаги ссылок. Все подробно здесь (я не автор этого метода): http://wiki.videolan.org/GenerateLibFromDll

Я также понял, что эту пару lib / dll можно связать с библиотеками MD и MDd.

Надеюсь, что это может помочь людям, которые находят этот пост, как он помог мне.

-Давид

1 голос
/ 06 мая 2010

Я ОП. MSYS - это именно то, что я искал.

Просто установите MinGW & MSYS, который содержит оболочку sh.exe & make.exe, с помощью которой вы можете настроить и сгенерировать Makefile, после чего вы можете использовать make.exe для запуска.

Это так просто.

1 голос
/ 29 апреля 2010

скомпилируйте их, используя MinGW , используя Msys для среды, если это необходимо. Файлы .a MinGW, по данным списка рассылки, имеют тот же формат, что и файлы .lib (просто переименуйте). Сначала вы можете проверить, включена ли статическая библиотека iconv в загрузочную / файловую систему MinGW.

Редактировать: он находится в msys (C: \ msys \ 1.0 \ lib) вместе с:

  • libiconv.a
  • libiconv.dll.a
  • libiconv.la

и дополнительно

  • libiconv-2.dll (в C: \ msys \ 1.0 \ local \ bin)

Редактировать: это здесь, libiconv вам нужно? похоже, что в этих версиях есть make-файлы MSVC :) http://www.opensource.apple.com/source/libiconv/

...