C言語関係掲示板

過去ログ

No.1079 リンク エラー??

[戻る] [ホームページ]
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)


とおりさん、ぽこさん色々ありがとうございました。
理解がまだ浅かった様なので自分でもう少し勉強してみます。