2012-01-31 4 views
1

ApacheとそのモジュールのリストをC++コンパイラでコンパイルすることはできますか? これはC++モジュールの追加も容易にします。今、私はいくつかのC++モジュールを追加しようとしていますが、Apache自身がC++バイナリとしてコンパイルされていれば、それはもっと簡単になります。ApacheをC++コンパイラでコンパイルする

+0

なぜApacheをC++コンパイラでコンパイルするとこれが簡単になるのか説明できますか?あなたのモジュールをC++で作成し、標準のApacheビルドとリンクするのはどうですか? –

答えて

4

C++とCは相互運用可能です。 (Cから呼び出されたC++メソッドはextern "C"となるようににマングルされ、にならないように宣言しなければならず、名前のマングリングが提供するオーバーロードが失われます)。

実際、恐竜が地球を徘徊した時代に、C++コンパイラはちょうどCを放出し、Cコンパイラに渡しました。

つまり、ある意味では、C++コンパイラを使ってApacheをコンパイルしています(ソースはC++ではありません)。モジュールをC++として記述してリンクすることには問題ありません。

+1

私は、Apache用のC++モジュールを書くのは難しくありませんが、C++の機能を使いたいときにはかなりのラッパー関数を書く必要があります。 –

+0

@ user1059298あなたは魔法のようにC++を何も作ることはできません。 ApacheはCで書かれているので、C++コンパイラでコンパイルしても、クラスのような新しい言語機能は使用されません。 – Borealid

+1

oops ...私は前のコメントではあまり明確ではありませんでした。私は今それを見る。私が(私のモジュールで)C++の機能を使用したいとき*私はかなりのラッパー関数を書く必要があります。 –

関連する問題