Вопрос по mingw, windows, botan, c++ – swprintf и vswprintf не объявлены?

10

Я пытаюсь скомпилировать Botan на Windows с MinGW и получаю следующую ошибку во время компиляции:

c:\qt\2010.04\mingw\bin\../lib/gcc/mingw32/4.4.0/include/c++/cwchar:159: error:
'::swprintf' has not been declared
c:\qt\2010.04\mingw\bin\../lib/gcc/mingw32/4.4.0/include/c++/cwchar:166: error:
'::vswprintf' has not been declared

Почему swprintf и vswprintf не объявлены и как я могу это исправить?

Кто-нибудь из вас подал отчет об ошибке в Qt? user1120884
Не то чтобы я помню. Jake Petroules
Просто записка,vswprintf на самом деле должен называтьсяwvsprintf на винде. Вы ожидаете, что это будетvwsprintf() или жеvwcsprintf() или что-то в соответствии с другими соглашениями, ноwvsprintf() это. bobobobo

Ваш Ответ

3   ответа
11

Попробуйте положить в

#undef __STRICT_ANSI__ 

перед включением stdio.h

Компилирование с-std=c++0x кажется, вызывает это даже без явного-ansi (в старом MinGW GCC 4.4.0). Более новый GCC должен исправить это (и сделать-std=c++0x избыточно) но я еще не проверил. Steve314
Или не компилировать с ключом -ansi? Похоже, глючные заголовки. wilx
3

была такая же проблема при компиляции Grantlee с использованием MinGW (Qt 2010.05).

Как я получил это для компиляции:

найти файл cwchar (C: \ Qt \ 2010.05 \ mingw \ lib \ gcc \ mingw32 \ 4.4.0 \ include \ c ++ \ cwchar)

закомментируйте следующие строки (вокруг строки 160)

используя :: swprintf;

using :: vswprintf;

2

При запуске убедитесь, что флаг -ansi не установлен. Если этот флаг используется, удалите его, и проблема будет решена.

Похожие вопросы