Не могу скомпилировать простую программу на C ++, используя g ++

Когда я пытаюсь скомпилировать любую c++ программу, используя g++, я получаю следующую ошибку, трассировка стека очень длинная, это всего лишь пример:

........... 
/usr/include/x86_64-linux-gnu/bits/byteswap.h:47:2: error: stray ‘\330’ in program
/usr/include/x86_64-linux-gnu/bits/byteswap.h:47:2: error: stray ‘\330’ in program
/usr/include/x86_64-linux-gnu/bits/byteswap.h:47:2: error: stray ‘\340’ in program
/usr/include/x86_64-linux-gnu/bits/byteswap.h:47:2: error: stray ‘\5’ in program
/usr/include/x86_64-linux-gnu/bits/byteswap.h:47:2: error: stray ‘\260’ in program
In file included from /usr/include/endian.h:60:0,
                 from /usr/include/ctype.h:39,
                 from /usr/include/c++/4.8/cctype:42,
                 from /usr/include/c++/4.8/bits/localefwd.h:42,
                 from /usr/include/c++/4.8/ios:41,
                 from /usr/include/c++/4.8/ostream:38,
                 from /usr/include/c++/4.8/iostream:39,
                 from post_test_5.cpp:1:
/usr/include/x86_64-linux-gnu/bits/byteswap.h:1:1: error: expected unqualified-id before numeric constant
/usr/include/x86_64-linux-gnu/bits/byteswap.h:11:2: error: expected unqualified-id before numeric constant
In file included from /usr/include/endian.h:60:0,
                 from /usr/include/ctype.h:39,
                 from /usr/include/c++/4.8/cctype:42,
                 from /usr/include/c++/4.8/bits/localefwd.h:42,
                 from /usr/include/c++/4.8/ios:41,
                 from /usr/include/c++/4.8/ostream:38,
                 from /usr/include/c++/4.8/iostream:39,
                 from post_test_5.cpp:1:
/usr/include/x86_64-linux-gnu/bits/byteswap.h:26:31: error: expected declaration before ‘}’ token

И пример кода post_test_5.cpp:

#include<iostream>

int main() {

  std::cout << "Hello World" << std::endl;
  return 0;
}

И я пытаюсь запустить его так:

g++ -c post_test_5.cpp

Моя gcc версия и версия Ubuntu:

gcc version 4.8.2 (Ubuntu 4.8.2-19ubuntu1) 
kirill@kirill-ThinkPad-X140e:~/CPlusPlusStuff/PostTest$ lsb_release -d
Description:    Ubuntu 14.04 LTS

Однако, когда я использую команду gcc для компиляции файла .c, все работает правильно.

Что может быть причиной этого?

1
задан 2 June 2015 в 06:40

1 ответ

Похоже (по крайней мере), что файл /usr/include/x86_64-linux-gnu/bits/byteswap.h был так или иначе поврежден. Откройте его с текстовым редактором и проверьте, похоже ли это на нормальный заголовочный файл C++.

, Если это верно, переустанавливают пакет libc6-dev с командой sudo apt-get --reinstall install libc6-dev

, Если дело обстоит не так необходимо будет отправить здесь полное содержание файла post_test_5.cpp, а также полный вывод компиляции.

0
ответ дан 2 June 2015 в 06:40

Другие вопросы по тегам:

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