2012-05-04 3 views
0

私はリンカオプションへのlibstdC++を追加しているが、私は、私は問題は、問題のファイルを使用してコンパイルされていないことだと思う私はC.EclipseでCのC++ラッパーを書くには?

で使用するすべてのC++の機能に「未定義の参照」を得続けますg ++では、このルールはEclipseでどのように定義しますか?

+6

CコードからC++関数を呼び出したいですか? – ildjarn

+0

うん:)おそらく、基本的なコンパイラコマンドを使って動作させることができますが、Eclipseで動作させたいと思います。 –

+0

これを行う唯一の方法は、C++コンパイラでコードをコンパイルし、他のコードをC++のサブセットに書き込むことです。 Cコンパイラはテンプレートを扱えません。 – pmr

答えて

0

g ++を使用してコンパイルするには、プロジェクトエクスプローラでCファイルを選択し、C/C++ビルド、設定を選択し、g ++をコマンドフィールドに入力します。おそらく、C++からC++の関数を呼び出し可能にするためにそこにいくつかのきれいな方法があるが、それは動作するはずです...

1

、あなたがしなければならない - 最低でも - "のextern Cを{}" を使用します。

CプログラムからC++専用の構文(新規、削除、クラス、テンプレートなど)を呼び出すことはできません.Cモジュールはコンパイルされず、リンクされません。

Eclipseで.c接尾辞を持つ合法的なCモジュールをコンパイルしたり、g ++コマンドラインからコンパイルすることができます。