私はプログラムの中でユーザー定義関数を作成しています。 pow
関数は、コンパイラは私にエラーを与え、undefined reference to pow()
があると言います。私はこれに似た問題を見てきました。コンパイル時に-lm
を追加するという解決策がありました。私はこれをやったが、まだそれはまだ問題がある。私のコードのmain
関数にpow
を入れるだけで以前はうまくいきましたので、私のユーザ定義関数でのみ発生しました。指数が0.5
の代わりに2
の場合にも機能します。助けていただきありがとうございます。私のコードをコンパイルしようとすると、 '-lm'とリンクしていても '未定義の参照(pow()')というエラーが表示されます
#include<math.h>
float standard_deviation (float variance) {
float deviation = 0.0;
deviation = pow(variance, 0.5);
return deviation;
} /* mean */
float standard_error (float standard_deviation, int number_of_elements) {
return standard_deviation/pow(number_of_elements, 0.5);
} /* mean */
どのようにプログラムをビルドしますか?コマンドラインから?コマンドラインで '-lm'をどこに置いたのですか?順序が重要なので、ライブラリはソース/オブジェクトファイルの後にある必要があります。 –
コンパイルとリンクに使用する(個々の)コマンドを表示します。さらに、この問題を示す完全なスタンドアロンの例を作成してください。 – Evert
@スティーブンカーライルあなたはコンパイラですか? – shafeeq