No.14166![]() |
リンク エラー?? 投稿者---かが(2004/05/23 00:17:47) |
||
to-main.obj(to-main.c): Undefined symbol: geter_ と言ったようなものが出てきてしまいます。 geter関数はto.cという別の所に存在し、to.hって言う ヘッダファイルを作って#include "to-1.h"としたんですが 良くわかりません・・・ コンパイラはLSI C-86を使用しています。 雑な文ですいません |
No.14170![]() |
Re:リンク エラー?? 投稿者---ぽこ(2004/05/23 05:00:00) |
||
> geter関数はto.cという別の所に存在し、to.hって言う >ヘッダファイルを作って#include "to-1.h"としたんですが >良くわかりません・・・ 作成したヘッダファイルと、インクルードしているヘッダファイルの 名前が違うように見えるんですが。。 |
No.14171![]() |
Re:リンク エラー?? 投稿者---かが(2004/05/23 05:07:12) |
||
>> geter関数はto.cという別の所に存在し、to.hって言う >>ヘッダファイルを作って#include "to-1.h"としたんですが >>良くわかりません・・・ > >作成したヘッダファイルと、インクルードしているヘッダファイルの >名前が違うように見えるんですが。。 includeした名前を書き間違えましたしっかりと#include"to.h"となってました。やはり同じように上手く行きません |
No.14172![]() |
Re:リンク エラー?? 投稿者---ぽこ(2004/05/23 05:13:01) |
||
>includeした名前を書き間違えましたしっかりと#include"to.h"となってました。やはり同じように上手く行きません "to.h"に関数geter()のプロトタイプ宣言があり、 to-geter.cにも"to.h"はインクルードされているんですよね? コンパイル時にどんなコマンドを打ってコンパイルしてますか? |
No.14173![]() |
Re:リンク エラー?? 投稿者---ぽこ(2004/05/23 05:17:18) |
||
>includeした名前を書き間違えましたしっかりと#include"to.h"となってました。やはり同じように上手く行きません もう一つ確認させてください。 "to-main.c"、"to.h"、"to-geter.c"はすべて同じディレクトリに あるのでしょうか? |
No.14175![]() |
Re:リンク エラー?? 投稿者---かが(2004/05/23 05:36:27) |
||
>>includeした名前を書き間違えましたしっかりと#include"to.h"となってました。やはり同じように上手く行きません > >もう一つ確認させてください。 >"to-main.c"、"to.h"、"to-geter.c"はすべて同じディレクトリに >あるのでしょうか? コンパイル時は lcc (ソース名)としています。 プロトタイプ宣言はあります。3つとも同じディレクトりにもあります。 ただ、to-geter.cに"to.h"をインクルードというのが良くわかりません。必要なのですか?自分はまだCを初めて日が浅くの理解が足りてないよう なので。 |
No.14174![]() |
Re:リンク エラー?? 投稿者---ぽこ(2004/05/23 05:35:31) |
||
>>> geter関数はto.cという別の所に存在し、to.hって言う >>>ヘッダファイルを作って#include "to-1.h"としたんですが >>>良くわかりません・・・ すみません。to.cは別のところにあるんですね。 読み違えていました。 #ファイル名も読み間違っているし。。 コンパイル時(リンク時)にto.c(to.obj)を指定していないor パスが通ってないってことではないでしょうか? |
No.14176![]() |
Re:リンク エラー?? 投稿者---かが(2004/05/23 05:41:27) |
||
>コンパイル時(リンク時)にto.c(to.obj)を指定していないor >パスが通ってないってことではないでしょうか? どうも自分はリンク自体をしっかり理解できてないみたいです。 リンクさせたいな、と思ったらヘッダファイルをインクルードする 他に何が準備として必要ですか?それさえもしてない危険性がある ので・・・ |
No.14177![]() |
Re:リンク エラー?? 投稿者---ぽこ(2004/05/23 05:46:04) |
||
> どうも自分はリンク自体をしっかり理解できてないみたいです。 >リンクさせたいな、と思ったらヘッダファイルをインクルードする >他に何が準備として必要ですか?それさえもしてない危険性がある >ので・・・ 私がまず確認したいことは、コンパイル時に lcc to-main.c to.c と言ったように、「実行可能なファイルを生成するために必要なファイルを すべて指定しているかどうか」ということです。 |
No.14178![]() |
Re:リンク エラー?? 投稿者---かが(2004/05/23 06:06:58) |
||
>> どうも自分はリンク自体をしっかり理解できてないみたいです。 >>リンクさせたいな、と思ったらヘッダファイルをインクルードする >>他に何が準備として必要ですか?それさえもしてない危険性がある >>ので・・・ > >私がまず確認したいことは、コンパイル時に >lcc to-main.c to.c >と言ったように、「実行可能なファイルを生成するために必要なファイルを >すべて指定しているかどうか」ということです。 はい |
No.14181![]() |
Re:リンク エラー?? 投稿者---ぽこ(2004/05/23 06:16:26) |
||
>はい うーん。困った^^; "to.c"で定義している関数geter()と "to.h"で宣言してあるgeter()が綴りミスなどで違うものになっており、 かつ "to.c"で"to.h"をインクルードしていないためにコンパイルは通ってしまった、とか。。 |
No.14179![]() |
Re:リンク エラー?? 投稿者---とおり(2004/05/23 06:08:24) |
||
コンパイルとリンクについて 最初、このホームページの説明 http://www9.plala.or.jp/sgwr-t/c/sec01.html を示そうとしたけど、あまり詳しくは触れていないようなので、 http://mikata.curiocube.com/hello/ch14_complink.html こっちを示しておきます。(つーか、ググってトップに来るが…) |
No.14180![]() |
Re:リンク エラー?? 投稿者---かが(2004/05/23 06:15:05) |
||
とおりさん、ぽこさん色々ありがとうございました。 理解がまだ浅かった様なので自分でもう少し勉強してみます。 |