Поиск шаблонов и имен с помощью функций `stdio.h`

Я пытаюсь построить PCL библиотека в 32-битной Windows 7 с MinGW, При строительстве outofcore Модуль получил несколько сообщений об ошибках _fseeki64:

error: there are no arguments to '_fseeki64' that depend on a template parameter, so a declaration of '_fseeki64' must be available

в octree_disk_container.h файл, есть

#ifndef WIN32
#define _fseeki64 fseeko
#endif

Я проверил (генерируя #error) а также WIN32 определяется в момент обработки файла. _fseeki64 похоже, что он доступен для компилятора, так как эта маленькая тестовая программа компилирует:

#include "stdio.h"int main(int argc, char** argv) {
FILE* f = fopen("C:/a.txt","r");
if(!f) printf("NOPE");
int seekret = _fseeki64(f,4,SEEK_SET);
(void)seekret;
return 0;
}

Если я определю _fseeki64 как fseeko64 ошибки исчезают, и модуль компилируется, но я не уверен, будет ли поведение таким же fseeko как и предполагалось fseeki,

Итак, что я могу сделать, чтобы использовать _fseeki64 в данном контексте? Может быть, объявив новый базовый класс, поместив #define там и затем называя это как Base<T>::_fseeki64? (получил идею от Вот)

о чем ты думаешь?

1

Решение

Таким образом, проблема заключается в том, что ваша система MinGW делает #define WIN32, еще _fseeki64 это Microsoft, а не POSIX, о которой знает MinGW. Я думаю, что вы должны использовать поведение POSIX на MinGW, что означает использование fseeko,

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]