0

libstdc++ をリンカ オプションに追加しましたが、C で使用したいすべての C++ 関数への「未定義の参照」を取得し続けます。

問題は、問題のファイルが g++ を使用してコンパイルされていないことだと思いますが、Eclipse でこのルールを定義するにはどうすればよいですか?

4

2 に答える 2

1

C++ 関数を C++ から呼び出せるようにするには、少なくとも「extern C {}」を使用する必要があります。

C プログラムから C++ のみの構成要素 (new、delete、クラス、テンプレートなど) を呼び出すことはできません。C モジュールはコンパイルおよび/またはリンクされません。

.c 接尾辞を持つ正規の C モジュールは、Eclipse を使用して、および/または g++ コマンド ラインからコンパイルできるはずです。

于 2012-05-04T20:53:50.623 に答える
0

g++ を使用してコンパイルする 1 つの方法は、プロジェクト エクスプローラーで C ファイルを選択し、C/C++ ビルド、設定を選択して、コマンド フィールドに g++ と入力することです。おそらくいくつかのよりクリーンな方法がありますが、うまくいくはずです...

于 2012-05-04T20:35:43.423 に答える