【发布时间】:2011-05-15 00:26:07
【问题描述】:
我有一个项目依赖libiconv 进行多项操作。
我在 Visual Studio 2008 中使用 iconv.lib 的预编译二进制文件,但现在我不得不转到 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 版本总是失败并出现同样的错误。
我应该怎么做才能完成这项工作?
【问题讨论】:
标签: c++ visual-studio gcc linker iconv