g ++ неправильно связывает заголовочные файлы - PullRequest
2 голосов
/ 25 апреля 2010

Я использую библиотеки cygwin для запуска программ на C и C ++ в Windows.

gcc работает нормально, но с g++ я получаю длинный список ошибок. Я думаю, что эти ошибки происходят из-за проблем с библиотеками Си.

Можете ли вы предложить, что мне нужно сделать, чтобы это исправить?


начинающиеся строки ошибок:

In file included from testgpp.cpp:1:
/cygdrive/c/cygwin/bin/../lib/gcc/i686-pc-cygwin/3.4.4/include/c++/cstdio:52:19: stdio.h: No such file or directory
In file included from testgpp.cpp:1:
/cygdrive/c/cygwin/bin/../lib/gcc/i686-pc-cygwin/3.4.4/include/c++/cstdio:99: error: `::FILE' has not been declared
/cygdrive/c/cygwin/bin/../lib/gcc/i686-pc-cygwin/3.4.4/include/c++/cstdio:100: error: `::fpos_t' has not been declared
/cygdrive/c/cygwin/bin/../lib/gcc/i686-pc-cygwin/3.4.4/include/c++/cstdio:102: error: `::clearerr' has not been declared
/cygdrive/c/cygwin/bin/../lib/gcc/i686-pc-cygwin/3.4.4/include/c++/cstdio:103: error: `::fclose' has not been declared
/cygdrive/c/cygwin/bin/../lib/gcc/i686-pc-cygwin/3.4.4/include/c++/cstdio:104: error: `::feof' has not been declared

весь дамп ошибки: Pastebin


для людей, запрашивающих исходный код: это, очевидно, проблема с связыванием файла заголовка, которая возникает еще до начала компиляции. Я получаю одну и ту же ошибку для каждого файла .cpp.

#include<cstdio>
#include<cstdlib>
#include<iostream>
#include<vector>
#include<queue>
using namespace std;

int main(){
    cout<<"hello world!";    
}

выдает мне ту же ошибку.

1 Ответ

1 голос
/ 25 апреля 2010

Ошибка ключа:

In file included from testgpp.cpp:1:
[...]/include/c++/cstdio:52:19: stdio.h: No such file or directory

Тот факт, что G ++ жалуется, что не может найти <stdio.h> (хотя он оставляет угловые скобки вне сообщения), означает, что у вас есть какая-то проблема с конфигурацией компилятора. Возможно, вы пропустили важный пакет. Я хотел бы переустановить или обновить вашу среду GCC, чтобы <stdio.h> был найден.

Остальные проблемы являются следствием отсутствующего заголовка - компилятор борется без всей информации, которая ему нужна, чтобы избежать генерации необоснованных ошибок.

...