У меня есть проект, который использует libiconv
для нескольких операций.
Я использовал предварительно скомпилированные двоичные файлы для iconv.lib
для Visual Studio 2008, но теперь мне пришлось перейти на Visual Studio 2010 и не болеебыли доступны скомпилированные двоичные файлы.
Я решил скомпилировать его самостоятельно, но, как указано в документации libiconv
, официальная поддержка компиляторов MSVC отсутствует.Однако я где-то читал, что gcc
может генерировать статические библиотеки, которые были двоично совместимы с компиляторами MSVC, пока двоичный интерфейс остается в C
.Хотя это звучало безумно, я попробовал, и это почти сработало.
Я скомпилировал его, переименовал в libiconv.a
в iconv.lib
и попытался с ним связаться.(Если это плохая идея, пожалуйста, дайте мне знать).
Сначала я столкнулся с ошибкой ссылки:
1>iconv.lib(iconv.o) : error LNK2001: unresolved external symbol ___chkstk
После некоторых исследований я перекомпилировал libiconv
(как в x86, так и в x86).версия x64), добавив флаг -static-libgcc
.
Это сработало, но только для выпуска моей программы для x64.Релиз x86 всегда дает сбой с одной и той же ошибкой.
Что я должен сделать, чтобы эта работа работала?