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