Когда я пытаюсь скомпилировать любую 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
, все работает правильно.
Что может быть причиной этого?
Похоже (по крайней мере), что файл /usr/include/x86_64-linux-gnu/bits/byteswap.h
был так или иначе поврежден. Откройте его с текстовым редактором и проверьте, похоже ли это на нормальный заголовочный файл C++.
, Если это верно, переустанавливают пакет libc6-dev с командой sudo apt-get --reinstall install libc6-dev
, Если дело обстоит не так необходимо будет отправить здесь полное содержание файла post_test_5.cpp, а также полный вывод компиляции.