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
コード例ispost_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++ヘッダーファイルのように見えるかどうかを確認します。
この場合は、コマンドSudo apt-get --reinstall install libc6-dev
を使用してパッケージlibc6-devを再インストールします
そうでない場合は、ファイルpost_test_5.cppの全内容とコンパイルの全出力をここに投稿する必要があります。