ページ 11

リンカについて?

Posted: 2008年12月21日(日) 17:54
by 紫苑
Cについて勉強し始めた ド 初心者です。
リンカってなんですが?
まったくわからなくて。。。
詰まってます・・。
どんなものか簡単におねがいしますm(. . )m

Re:リンカについて?

Posted: 2008年12月21日(日) 19:59
by dic
まだまだ初心者の私が言うのもなんですが、初心者にはこの本がお勧めです

http://www.amazon.co.jp/%E3%83%97%E3%83 ... 071&sr=8-1

値段的にもやさしいのではないでしょうか

Re:リンカについて?

Posted: 2008年12月21日(日) 20:37
by たいちう
"リンカ"でググればいろいろ見つかるでしょう。
http://e-words.jp/w/E383AAE383B3E382AB.html

簡単に書くと、、、

C言語のプログラムから、マシン語のプログラムの断片を作るのがコンパイラ。
作業の名前はコンパイル。
他の断片やライブラリと組み合わせて、実行ファイルを作るのがリンカ。
作業の名前はリンク。

文脈によっては、リンクがコンパイルに含まれることもあります。
「プログラムをコンパイルして実行ファイルを作る」とか。


あと、dicさんのお薦めのK&Rは、良い本だとは思いますが、
かなり気合の入った初心者向けだと思います。
一般の初心者さんにとっては、もっと易しめの本の後の方が良いのではないかと。

Re:リンカについて?

Posted: 2008年12月21日(日) 22:31
by lbfuvab
ソースをそのまま機械語に直したのがオブジェクトファイル(*.obj)で
それらのオブジェクトファイルとライブラリを合体させて実行ファイル(*.exe)にするのがリンカです。

・・・・と私は理解しています。

Re:リンカについて?

Posted: 2008年12月21日(日) 22:35
by ムンバ
こんばんは。
C言語の勉強を始めて3ヶ月弱という初心者です。(汗

・プログラムを実行するまでの過程

ソースファイルの作成→コンパイル→リンク→実行

ソースファイル→コンパイラ→オブジェクトファイル

オブジェクトファイル
   + (←リンカ)  →  実行可能ファイル
ライブラリ

実行可能ファイル→デバッガ→プログラム

ソースファイル:自分で作るプログラムファイル。

ライブラリ:予め用意されているプログラムファイル。

オブジェクトファイル:ソースファイルをコンパイルしたファイル。

コンパイル:人間語を機械語に変換する作業。変換するツールは、コンパイラ。

リンク:オブジェクトファイルとライブラリを結合する作業。結合するツールは、リンカ。

デバッガ:実行可能ファイルを実行させて、正しく動作するかを確認するツール。


http://www.bk1.jp/product/02916069?partnerid=02goo03
 ↑
この本に、こんな感じで解説されてます。
宣伝するつもりは無いです。(笑
私はこの本で、実行ファイルができる仕組みを知りました。

(修正 lbfuvabさんと、書き込みかぶってしまいました。申し訳御座いません。<謝)

Re:リンカについて?

Posted: 2008年12月21日(日) 22:44
by たかぎ
現状どこまで理解できているのか不明なので、とりあえず厳密な話をします。
分からなければ、自分で調べるなり、改めて具体的な質問をするなりしてください。

http://www.kijineko.co.jp/tech/creintro ... hases.html

↑でも書きましたが、翻訳フェーズの8.のことを普通は「リンク」と呼びます。そして、「リンク(link)」を行うプログラムのことを「リンカ(linker)」といいます。

Re:リンカについて?

Posted: 2008年12月22日(月) 01:24
by ムンバ
それは、有料では無いのですか?<たかぎさん

Re:リンカについて?

Posted: 2008年12月22日(月) 07:02
by たかぎ
> それは、有料では無いのですか?

すみません。意味がわかりません。

Re:リンカについて?

Posted: 2008年12月22日(月) 12:52
by ムンバ
失礼しました。
たかぎさんのサイトでもC言語の勉強できるのですね?
覗いて見ました。知らなかったのです。
ぜひ、そちらでも勉強させて頂きます。

Re:リンカについて?

Posted: 2008年12月22日(月) 17:42
by たかぎ
> たかぎさんのサイトでもC言語の勉強できるのですね?

もしかして有料コンテンツだと思ってました?
さすがにそんな"せこい"ことはしません。
一応営利事業なので、アフィリエイト広告だけは貼っています。
気に入った方は、投げ銭だと思って協力してもらえると嬉しいですが、何ら強制しませんし、懇願するものでもありません。

Re:リンカについて?

Posted: 2008年12月22日(月) 18:05
by ムンバ
はい。思ってました。^^;
すみません。でも、せこいとは思ってませんので。(笑
今の私の知識では正直、難しいですが
もう少し勉強を進めて、たかぎさんのサイトで勉強できたらと思います。
その節は宜しくお願いします。
失礼しました。(謝

Re:リンカについて?

Posted: 2008年12月22日(月) 18:40
by たかぎ
> 今の私の知識では正直、難しいですが

確かにちょっと難しい内容が多くなっています。
入門者レベルの内容というのは他のサイトでもいろいろありますので、それ以外となると、どうしてもマニアックな内容になってしまいます。
いまさらポインタがどうとかいうサイトをもう一つ作っても仕方がありませんので。

Re:リンカについて?

Posted: 2008年12月22日(月) 20:34
by 紫苑
いろいろなことありがとうございます。
これから頑張ります。
ホントに詳しく教えてもらって心から感謝です!

Re:リンカについて?

Posted: 2008年12月24日(水) 09:12
by 紫苑
もう一ついいですか?
さきほどはほんとありがとうですm(. . )m

コンパイラについいてです。
コンパイラをダウンロードしようとしてるんですが。。。
C言語のコンパイラが欲しいのに。。。
C++のコンパイラばっかりで。。。
どうしたらいいんですか?
できればフリーのソフトがいいんでが。
言い過ぎですかね。。

Re:リンカについて?

Posted: 2008年12月24日(水) 09:18
by Mist
現在一般に広まっているC言語(C90)コンパイラでいいのであれば、C++は互換性がありますのでソースファイルの拡張子を.cとすればCでコンパイルできますよ。

Re:リンカについて?

Posted: 2008年12月24日(水) 09:22
by 紫苑
C90。。。
一般に広まってるかわからないんですが。。
いっかいやってみます^^
ダメもとですし 笑

Re:リンカについて?

Posted: 2008年12月24日(水) 09:28
by 紫苑
あ。もう一つだけ。。 ←「だけ」になるかわからないですが 笑
みなさんわどんなコンパイラとリンカを使ってるんですか?

Re:リンカについて?

Posted: 2008年12月24日(水) 09:48
by Mist
私は用途に合わせていっぱい使ってます(^^;

・BCC 5.5   ちょっとしたコンソールアプリ作る用
・VC++2008EE  DXライブラリでゲーム作る用
・CBC6.0    Windowsなツールなんか作る用
・HEW     仕事用
・GCC     仕事用

初めてであればVC++2008EEがいいと思いますよ。
ダウンロードもインストールもそんなに手間じゃないですし、ググればいろいろ情報がありますし。

Re:リンカについて?

Posted: 2008年12月24日(水) 11:04
by 紫苑
教えてくれてありがとうございます^^
じゃぁ、VC++2008EEをダウンロードします。
本当にありがとうございましたm(. . )m