2016-04-18 5 views
0

現在、CentOS 6.5よりも新しいバージョンのg ++​​(4.7)でコンパイルしようとしています。g ++は標準ライブラリをどのように見つけるのですか

私はyumからサポートを実行しています。私は4.7 g ++のバイナリを用意して、/ usr/bin/g ++がバイナリにリンクするようにリンクを切り替えました。

これは動作していますが、g ++ではC++標準ライブラリ(たとえば<algorithm><iostream>など)が見つかりません。

これらのライブラリがどこに保存されているので、これらのライブラリが保存されているので、正しくインポートする方法を見つけることができますか?

ありがとうございます!

+0

g ++は、何らかの形の黒い魔法を使ってそれらを見つける。 :-) OK ... AFAIK、STLヘッダーへのパスはg ++にハードコードされ、ライブラリパスは環境変数とフラグで変更できます... STLヘッダーに変更するには、gccを再コンパイルする必要があります。 – WhiZTiM

答えて

0

GCCが複数インストールされている場合は、gcc | プレフィックスがインストール接頭辞である-Bprefix オプションの手段 によって、それらのいずれかのツール、ヘッダとライブラリを使用するg++フロントエンド(/usr/bin/{gcc|g++}) 。

例えば、私は接頭辞(ディストリビューションごと)GCC 4.9.3がインストールされている:

/usr/lib/gcc/x86_64-linux-gnu/4.9.3 

または接頭辞(また、ディストリビューションごとに)設置GCC 5.2.1を有する:

/usr/lib/gcc/x86_64-linux-gnu/5.2.1 

私が呼び出す場合:

gcc -B/usr/lib/gcc/x86_64-linux-gnu/4.9.3... 

4.9ツール、ヘッダー、ライブラリを使用しています。私が呼び出す場合:

gcc -B/usr/lib/gcc/x86_64-linux-gnu/5.2.1... 

私は5.2ツール、ヘッダー、ライブラリを使用しています。 -B接頭辞を省略した場合は、最新のインストール(5.2)を取得します。

関連する問題