相关疑难解决方法(0)

是否可以在 MSVC 中使用 gcc 编译库?

我有一个依赖于libiconv多个操作的项目。

iconv.lib为 Visual Studio 2008使用了预编译的二进制文件,但现在我不得不转向 Visual Studio 2010 并且没有更多的预编译二进制文件可用。

我决定自己编译它,但正如libiconv文档所述,MSVC 编译器没有官方支持。但是,我在某处读到gcc可以生成与 MSVC 编译器二进制兼容的静态库,只要二进制接口保留在C. 虽然这听起来很疯狂,但我试了一下,实际上几乎奏效了。

我编译了它,重命名libiconv.aiconv.lib并尝试与它链接。(如果这是一个坏主意,请告诉我)。

首先我遇到了一个链接错误:

1>iconv.lib(iconv.o) : error LNK2001: unresolved external symbol ___chkstk
Run Code Online (Sandbox Code Playgroud)

经过一番研究,我重新编译libiconv(在 x86 和 x64 版本中),添加了-static-libgcc标志。

它有效,但仅适用于我的程序的 x64 版本。x86 版本总是以同样的错误失败。

我应该怎么做才能使这项工作?

c++ linker gcc iconv visual-studio

5
推荐指数
1
解决办法
3756
查看次数

标签 统计

c++ ×1

gcc ×1

iconv ×1

linker ×1

visual-studio ×1