2011-11-11 7 views
0

私はEclipse-CDT IndigoでKubuntu 11.10システムを持っています。 Eclipseと一緒にgcc-4.6がインストールされました。私はその後、gcc-4.4とgcc-4.2をUbuntuパッケージでインストールしました。/usr/includeファイル(例string.h)はgccのバージョンとどのように関連していますか?

私は/ usr/bin/gccのシンボリックリンクを4.4または4.6に切り替えることができ、Eclipseは自分のコードをどちらかの方法でビルドします。私は、GCC-4.2を使用するようにシンボリックリンクを設定する場合しかし、私は次のエラーを取得する(そしてより多くの):

In file included from /usr/include/c++/4.2/cstring:52, 
      from /usr/include/c++/4.2/i486-linux-gnu/bits/c++locale.h:47, 
      from /usr/include/c++/4.2/iosfwd:45, 
      from /usr/include/c++/4.2/ios:43, 
      from /usr/include/c++/4.2/ostream:45, 
      from /usr/include/c++/4.2/iostream:45, 
      from ../ProjStructure.h:4, 
      from ../Scanner.h:3, 
      from ../Scanner.cpp:1: 
/usr/include/string.h:29: error: ‘__BEGIN_DECLS’ does not name a type 

だから、私は/は/ usrに持ってstring.hのは__BEGIN_DECLSがで定義されることを想定含めることが表示されますコンパイラ固有のものの1つが含まれます。

/usr/include/string.hは、コンパイラ固有のバージョンを持っていないlibc6-devパッケージに含まれています。私はパッケージシステムがこれを処理し、すべての正しいバージョンのものをインストールすることを期待しました。

私はGCCの複数のバージョンでGNUドキュメントを読んだことがありますが、インクルードファイル/ディレクトリについては何も言いません。

私はここで間違っていますか?

答えて

2

Ubuntuはあなたのgcc-4.2パッケージですか?

これはおそらく古いUbuntuリリースからのものです。 Ubuntuの新しいリリースでは、ヘッダとライブラリのディレクトリが変更されています。古いディレクトリはコンパイルされません。

+0

私のレポ・リストに 'hardy'(8.04)を追加しました。 –

+0

@SteveFallows、 'gcc -v -x c/dev/null'を実行しようとすると、新しいGCCで検索パスに'/usr/include/x86_64-linux-gnu'と表示されます。ライブラリと同様、新しいバージョンには、ライブラリ検索パスに '/ usr/lib/x86_64-linux-gnu'が含まれています。おそらくあなたは '-I'と' -L'オプションで何かを達成することができますが、私は個人的には気にしません:) – chill

+0

ありがとう。 gcc-4.2が動作するKubuntu 10.4のインストールが既にあるので、私はそこにEclipseをインストールして、それと一緒に行くと思います。 –

関連する問題