iostream, wifstream и eclipse/g++ для Windows
Я использую Eclipse на окнах с цепочкой инструментов MinGW (g++ и т. Д.). У меня есть программа, которую я построил на darwin, которая читает и пишет в файлы, используя wifstream и wofstream. Программа компилирует и работает с помощью eclipse на darwin (Mac)... нет для моей проблемы.
Когда я перемещаю код в окна и пытаюсь встроить его с помощью цепочки инструментов MinGW и затмения, я получаю ошибку компиляции в wifstream, wofstream и wcout. Переменные, определенные как wstring, компилируются просто отлично.
Например:
wifstream inFile; inFile.open (argv [2], ios_base:: in);
приводит к ошибке компиляции
..\src\pdConv.cpp:31: ошибка: `wifstream'не был объявлен в этой области
который, кажется, указывает на то, что компилятор считает, что wifstream является переменной. Я заметил, что директива _GLIBCXX_USE_WCHAR_T не включена во включаемых файлах. Мне нужно определить это самому, или что-то в среде должно это знать? Если я определяю это вручную, то оказывается, что я не могу использовать как широкие, так и узкие реализации в одной программе.
Это, вероятно, очевидно, но я застрял в этой проблеме надолго... смеется... Что я здесь скучаю?
1 ответ
По сути, это не поддерживается MinGW. Посмотрите эту ссылку. Я полагаю, возможно, что самая последняя версия gcc (4.4.0), доступная для MinGW, решает эту проблему, но я бы на это не рассчитывал. Похоже, что использование STLPorts может быть вашим единственным вариантом, если вам нужно придерживаться MinGW.