0

我在带有 MinGW 工具链(g++ 等)的 Windows 上使用 Eclipse。我有一个基于 darwin 构建的程序,它使用 wifstream 和 wofstream 读取和写入文件。该程序在 darwin (Mac) 上使用 eclipse 编译和工作...对于我的问题没有。

当我将代码移到 Windows 并尝试使用 MinGW 工具链和 eclipse 进行构建时,我在 wifstream、wofstream 和 wcout 上遇到编译错误。定义为 wstring 的变量编译得很好。

例如:

wifstream inFile; inFile.open(argv[2], ios_base::in);

导致编译错误

..\src\pdConv.cpp:31: 错误: `wifstream' 未在此范围内声明

这似乎表明编译器认为 wifstream 是一个变量。我确实注意到包含文件中未启用 _GLIBCXX_USE_WCHAR_T 指令。我需要自己定义它还是环境中的某些东西应该知道这一点?如果我手动定义它,那么看来我不能在同一个程序中同时使用宽和窄实现。

这可能很明显,但我已经被这个问题困了很久......大声笑..我在这里错过了什么?

4

1 回答 1

6

基本上,MinGW 不支持这一点。请参阅此链接,我想可能适用于 MinGW 的最新 gcc (4.4.0) 解决了这个问题,但我不会指望它。如果您需要坚持使用 MinGW,看起来使用 STLPorts 可能是您唯一的选择。

于 2009-08-22T21:36:53.980 回答