#c #gcc #mingw-w64
#c #gcc #mingw-w64
Вопрос:
Когда я пытаюсь скомпилировать с использованием GCC (MinGW-W64) с dirent.h
заголовочным файлом, scandir
не распознается как функция. Должно ли это быть? Я пытаюсь запустить пример кода GNU GCC для scandir.
Я также не уверен, какая версия является последней. В некоторых сообщениях указывается GCC 10 или 10.1, но неясно, какая версия MinGW-W64. GCC -- version
выдает:
gcc (x86_64-posiz-seh-rev0, Built by MinGW-W64 project) 8.1.0.
Это самая последняя версия?
Все остальное, что я использовал до сих пор, похоже, работает нормально. Я смог без проблем скомпилировать свой код с файлом объединения SQLite3 и выполнить SQL. Кроме того, readdir
распознается, компилируется и выполняется, как и ожидалось.
Это пример кода. alphasort
также не распознается.
#include <stdio.h>
#include <dirent.h>
static int
one (const struct dirent *unused)
{
return 1;
}
int
main (void)
{
struct dirent **eps;
int n;
n = scandir ("./", amp;eps, one, alphasort);
if (n >= 0)
{
int cnt;
for (cnt = 0; cnt < n; cnt)
puts (eps[cnt]->d_name);
}
else
perror ("Couldn't open the directory");
return 0;
}
Спасибо.
Комментарии:
1. Вы читали
Feature Test Macro Requirements
иman feature_test_macros
?2. Нет. Откуда?
3. man feature_test_macros и man scandir . Из справочных страниц — лучшая документация. Также может быть, что MinGW (или что у вас там есть) просто не реализует эту функцию.
4. Спасибо. Я думал, вы имели в виду документацию MinGW-W64. Я просмотрю это и посмотрю, является ли это проблемой.
5. Это для glibc в Linux. Вероятно, не применимо к mingw.