我有一个依赖于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 和 x64 版本中),添加了-static-libgcc
标志。
它有效,但仅适用于我的程序的 x64 版本。x86 版本总是失败并出现同样的错误。
我应该怎么做才能完成这项工作?