0

私はWINDOWSマシンでBorlandTurboC ++コンパイラを使用しており、Cでコードを記述しています。

計算の1つに、相補誤差関数erfc()を使用したいと思います。

ただし、コードを実行すると、エラーは「リンカーエラー:モジュールfilename.cの未定義のシンボル_erfc」です。

ここでの問題は、erfc()とerf()がmath.hライブラリに含まれていることになっていることです。しかし、これらは私のものでは利用できません。

これらの関数をプログラムに含める方法を教えてもらえますか?

ありがとうございました

4

2 に答える 2

4

数学ライブラリにリンクするには、特別なオプションを渡す必要がある可能性があります。

Borland TurboC++がこのerfc()機能をサポートしていない可能性もあります。

Cでは、1990年のISOC標準にはerfc()機能が含まれていませんでした。1999年の標準によって言語に追加されました。(C ++についてはよくわかりません。)BorlandTurbo++はかなり古いと思います。

を呼び出す小さなプログラムを書いてみてくださいsqrt()。それを機能させることがerfc()でき、それでも認識されない場合、Borlandはそれをサポートしていません。

後者の場合は、新しいコンパイラを入手するか(無料のコンパイラが多数あり、いずれの場合もおそらくそれは良い考えです)、またはのオープンソース実装を見つけてerfc()ください。

于 2011-10-05T04:07:47.637 に答える
1

数学ライブラリに対してリンクする必要があります。Unixマシンでは、これは-lmフラグをリンカに渡すことによって行われます。これは、「libmという名前のライブラリに対するリンク」を意味します。ボーランドでも似たようなことをする必要があるかもしれませんが、詳細はわかりません。うまくいけば、これはあなたを正しい方向に向かわせるでしょう。

于 2011-10-05T03:44:56.690 に答える