如何在 mingw 的 gcc 中启用 iconv 支持?

Posted

技术标签:

【中文标题】如何在 mingw 的 gcc 中启用 iconv 支持?【英文标题】:How to enable iconv support in mingw's gcc? 【发布时间】:2011-03-13 21:25:34 【问题描述】:

我正在尝试使用带有 -fexec-charset 选项的 mingw 的 gcc 来指定一些不同于 UTF-8 的编码,我收到以下错误:

Z:\>echo char foo[] = "\u00fc"; | g++ -S -xc++ -fexec-charset=latin1 -
cc1plus.exe: error: no iconv implementation, cannot convert from UTF-8 to latin1

如何检查 mingw 的 gcc 是否支持 iconv 以及如何启用此支持以防它被关闭?


我在 sourceforge.net 上的 mingw 的 bugtracker 上发现了错误号 2832453(由 Alexandr Zamaraev 归档)关于 -finput-charset-fexec-charset 选项在 4.4.0 版本的 mingw 中不起作用(这就是我正在使用的)。 Alexandr 还在 post 向 MinGW-users 邮件列表中描述了这个问题。该错误于 2009 年 8 月 5 日提交,此后没有发生任何事情。我不确定我是否发现了这个错误(我什至不确定这是否是一个错误,因为没有人确认这一点)或者我的设置是否有问题。

【问题讨论】:

【参考方案1】:

这取决于您系统的libiconv。它告诉你它找不到它(这不是一个错误)

安装指南here在安装后说:

但是,您仍然需要将 zlib1.dll、iconv.dll 和 libxml2.dll 复制到 .../install_dir/bin

【讨论】:

嗯,我的 MinGW 安装的 bin 文件夹中有 libiconv-2.dll 文件。顺便说一句,我不太明白构建您提到的某些特定库的说明与我的问题有何关系。 我不太确定安装 minGW 说明的链接(包括 libiconv 的放置位置)与构建特定库的关系如何?除此之外……如果它发现该库并且支持编码,它应该工作。 现在应该将所有文件安装到 ~/openbabel-2-2-x/build/install_dir。但是,您仍然需要将zlib1.dll、iconv.dll 和libxml2.dll 复制到.../install_dir/bin。 这不是说要将这些文件复制到app 的 目录中吗?在构建之后,应用程序可以工作了吗?我想是的。【参考方案2】:

当他们编译 GCC EXE 时,他们使用了一个配置。在configure中有一个关于ICONV的设置。有时他们设置了项目,但有时他们忘记了,那个时候你需要自己重新编译GCC EXE。

【讨论】:

以上是关于如何在 mingw 的 gcc 中启用 iconv 支持?的主要内容,如果未能解决你的问题,请参考以下文章

c++ 在 Windows 上使用带有 Mingw 编译器的 iconv

如何在 Windows 上的 MinGW 中更新 GCC?

如何在mingw-w64 gcc 7.1中无需警告地打印size_t?

无论代码如何,MinGW .exe 都需要一些 gcc dll?

如何将使用sysioctl.h的代码移植到MinGW gcc中?

如何向 mingw-gcc 编译的可执行文件添加图标?