みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

WindowsでコンパイルできるがUNIXではできない

下記のプログラムは、2^-0.94を計算するものです。
このプログラムはwindows2000のマシンでコンパイルできるのですが、UNIXのマシンだと
Unresolved text symbol "pow"
というエラーがでてコンパイルできません。
UNIXのマシンは「cc ファイル名」でコンパイルを実行します。
どうすればコンパイルできるようになるのでしょうか。お手数ですが、教えてください。よろしくお願いします。
※windows2000マシンのコンパイラ:Borland C++ Compiler 5.5

#include <stdio.h>
#include <math.h>
int main()
{
int a;
double b,c;

a=2;
b=-0.94;
c=pow(a,b);
printf("%lf\n",c);

return 0;
}

投稿日時 - 2005-11-21 10:25:43

QNo.1792133

困ってます

質問者が選んだベストアンサー

コンパイルする際に
 cc hoge.c -lm
でどうでしょう?

powコマンドはmath.h内に定義されており、
これをリンクしてコンパイルする際には-lmオプションが必要だったかと思われます。

投稿日時 - 2005-11-21 10:33:55

お礼

ご回答ありがとうございます。
おかげさまで無事にコンパイルできました。

投稿日時 - 2005-11-21 10:56:50

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

コンパイラがgccなら、
-lm  オプション付きでコンパイルしてください。

投稿日時 - 2005-11-21 10:37:03

お礼

ご回答ありがとうございます。
おかげさまで無事にコンパイルできました。
オプションが必要とは知りませんでした。まだ勉強不足ですね。

投稿日時 - 2005-11-21 10:58:29

あなたにオススメの質問