2009-08-04 5 views
3

デフォルトのlibstdC++の代わりにg ++で別のSTLを使いたいです。これを行う最も簡単な方法は何ですか?g ++で別のSTLを使用する方法

g ++がSTLヘッダーを探すのを阻止する-nostdinC++フラグが見つかりましたが、これはコンパイル時のものです。それはまだそれ自身のSTLに対してg ++リンクを作るでしょう。

私はリンクを禁止する方法を見つける必要があります。

ありがとうございます!

答えて

5

簡単な方法の1つは、g ++ではなくgccでビルドすることです。これはデフォルトのC++ライブラリにはリンクされませんが、.cppファイルはC++コードとしてコンパイルされます。コマンドラインで代替ライブラリを明示的に指定する必要があります。

+0

です。 g ++が含まれているが、gccを使用しているのでスキップされる他のライブラリ(STL以外)を明示的に指定する必要はありますか?ありがとう。 –

+0

-nostdlibオプションと-nodefaultlibsオプションもあります。しかし、彼らはOPの目的にはあまり役に立たないと思われ、彼はより多くのサポート機能を提供したり、libcと明示的にリンクする必要があります。 g ++ドライバは自動的に-lmを提供しますが、gccは自動的に提供しません。 – AProgrammer

+0

gccはAProgrammerが見ているように、数学ライブラリではありませんが、必要なCライブラリなどにリンクしてください。 –

0

デフォルトのgcc stl実装の代わりにSTLportを使用してみてください。私のUbuntuには、パッケージをインストールするときに静的リンク用ライブラリ(/usr/lib/libstlport.a)があります。これは実際にうまくいくかどうかわかりません。