C言語関係掲示板

過去ログ

No.7. LSIC算術関数リンクエラー


教えてください。
lsic-86でpower関数が動かないのです。
ソースは以下の通りです。
一応リンクするんですが、
lld @link.i
0802.obj(0802): Undefined symbol: pow_
というメッセージが出て実行できません。
これって、関数の定義がないときにでますよね。
powは使えないのでしょうか・・・。

#include <stdio.h>
#include<math.h>
int main(void)
{
double a=2,b=3;

printf("%fの%f乗は%f",a,b,pow(a,b));
return(0);
}


_LCC に -lmathlib を追加してみてください。
もし、あるときには、他の -l指定の先頭に -lmathlib を移動してみてください。


ごめんなさい。意味が分からないです。
もう少し詳しくお願いします。


_lccとは

すみません、休み時間にちゃっちゃと書いたのですごく省略してしまいました。
LSICの試食版をダウンロードすると、一緒に_lccというファイルも付いてくるの
ですが、これはコンパイラの設定ファイルです。中をエディタで開くと、


# LSI C-86 compiler's configuration file

-DLSI_C
-XA:\LSIC86\BIN -LA:\LSIC86\LIB -IA:\LSIC86\INCLUDE -T -O
-acdos.obj $LSICOPTS
& #Command line argument will be inserted here
-lknjlib -ldoslib -v

のように記述されています。この最後の行はリンク指定ですので、ここを

-lmathlib -lknjlib -ldoslib -v

に変えてみてください。これで、算術関数はリンクできると思います。


お忙しいとこすいませんでした。
できました!
すごいですね。奥が深い!!
ありがとうございました。

戻る


「初心者のためのポイント学習C言語」 Last modified:2001.7.25
Copyright(c) 2000-2002 TOMOJI All Rights Reserved