Qt, windows и _POSIX_ - PullRequest
       53

Qt, windows и _POSIX_

3 голосов
/ 03 апреля 2012

Я работаю над сборкой Qt 4.8.1 в VisualStudio 2005, и у меня возникла проблема, которую не смог найти компилятор _fileno.

После некоторых исследований я обнаружил, что в stdio.h он имеет

#ifdef  _POSIX_
_CRTIMP __checkReturn int __cdecl fileno(__in FILE * _File);
#else
_CRTIMP __checkReturn int __cdecl _fileno(__in FILE * _File);
#endif

Затем я просмотрел код qt и обнаружил, что оба файла qfsfilengine_win.cpp и qfilesystemengine_win.cpp имеют

#define _POSIX_

Мне кажется, что это было бы ошибкой, и если я уберу эти строки, то, похоже, будет успешно построен.

Кто-нибудь знает, почему эти файлы будут определять _POSIX_?

Спасибо.

1 Ответ

1 голос
/ 05 апреля 2012

Похоже, что это действительно ошибка в Qt.Если вы собираете Qt для окон без предварительно скомпилированных заголовков и столкнулись с этой проблемой, просто удалите вызовы #define _POSIX_ в qfsfilengine_win.cpp и qfilesystemengine_win.cpp, и он будет успешно собран.

...