• ベストアンサー

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; }

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

  • ベストアンサー
回答No.1

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

eliteyoshi
質問者

お礼

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

その他の回答 (1)

  • ballville
  • ベストアンサー率47% (233/487)
回答No.2

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

eliteyoshi
質問者

お礼

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

関連するQ&A