Как построить gnu 'libiconv' На & для windows?
Я хочу создать статическую библиотеку (*.LIB file)GNU libiconv в windows для использования с другими библиотеками в Visual C++. Другие библиотеки, которые я использую, построены с опцией" многопоточная DLL " (/MD). Итак, мне нужно построить libiconv с той же опцией.
4 ответов
Я нашел парк Йонгху по Как построить libiconv с Microsoft Visual Studio на Проект Код быть полным и чистым (для VS2010 и GNU libiconv 1.14).
маленькое дополнение к вашему ответу. У меня была та же проблема, и я обнаружил, что решение MinGW + MSYS было идеальным.
хотя, мне нужно пойти немного дальше и создать тоже .lib файл для того, чтобы иметь возможность связать с результирующей dll.
вот что я нашел:
создать .def-файл из библиотеки dll с помощью dumpbin (инструмент Visual Studio).
создать .lib файл из .def с программой lib (Визуальной студии)
Это позволяет указать некоторые флаги ссылок, если это необходимо. Все подробно описано здесь (я не автор этого метода): http://wiki.videolan.org/GenerateLibFromDll
Я также понял, что эта пара lib/dll может быть связана как с библиотеками MD, так и с MDd.
надеюсь, что может помочь людям, которые найдут этот пост, как это помогло мне.
-Дэвид
компилировать их с помощью MinGW использование Msys для окружающей среды, если это необходимо. По MinGW это .файлы, судя по всему, по списку рассылки, в том же формате,.lib-файлы (просто переименуйте). Вы можете сначала проверить, включена ли статическая библиотека iconv уже в файловую систему загрузки / загрузки MinGW.
Edit: это в msys (C:\msys\1.0\lib), вдоль с:
- libiconv.а
- libiconv.файл DLL.а
- libiconv.Ла
и дополнительно
- libiconv-2.dll (in C:\msys\1.0\local\bin)
Edit: это здесь, libiconv вам нужно? эти версии, похоже, имеют MSVC makefiles:)http://www.opensource.apple.com/source/libiconv/
Я ОП. префикса msys - это то, что я искал.
просто установите MinGW & MSYS, который содержит shell sh.exe
& make.exe
С помощью которого вы можете настроить и создать Makefile
после этого вы можете использовать make.exe, чтобы запустить его.
Это так просто.