- ベストアンサー
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; }
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
コンパイルする際に cc hoge.c -lm でどうでしょう? powコマンドはmath.h内に定義されており、 これをリンクしてコンパイルする際には-lmオプションが必要だったかと思われます。
その他の回答 (1)
- ballville
- ベストアンサー率47% (233/487)
回答No.2
コンパイラがgccなら、 -lm オプション付きでコンパイルしてください。
質問者
お礼
ご回答ありがとうございます。 おかげさまで無事にコンパイルできました。 オプションが必要とは知りませんでした。まだ勉強不足ですね。
お礼
ご回答ありがとうございます。 おかげさまで無事にコンパイルできました。