リンクについて、質問させて頂きます。
初めは、サイトをめぐり、簡単に学んでいたのですが、サイトよりきりで説明が変わったりするので、只今、参考書を片手にC言語を学んでいます。
その参考書で、ファイルを分割するという内容がでました。
ただ、コンパイラは人によって違うということで、明確な答えは参考書に載っていません。
私は、「VisualC++ 2008 Express Edition」のコンパイラを使用しています。
参考書には「説明書を参考にしてください」と、書いてあったのですが、ヘルプを参考にしても、いまいちよくわからなかったもので・・・・。
そこで、このコンパイラでのリンクのやり方が、正しいかを教えてください。
ヘッダファイル1つ
ソースファイル2つ
をリンクしたいとします。
1.ヘッダファイルで、追加>新しい項目>テンプレートはヘッダーファイル>「head」という名前で作成
2.ヘッダファイルにて、関数プロトタイプ(仮に、max()関数とします)を宣言。
3.ソースファイルで、追加>新しい項目>テンプレ-トはC++ファイル>「max」という名前で作成
4.ソースファイルに、max()関数のコードを入力。
5.3と同じく、ソースファイルに「main」という名で新規作成。
6.main()関数(プログラム本体?)のコードを入力。(このとき、#include "head.h"も最初に入力する)
一応、これでビルドしたところ、問題なくできたのですが、リンクのやり方というのは、これでいいんでしょうか?
コードを張ると、若干説明しにくくなるような気がしたので、貼りませんでしたが、貼ったほうがいい場合は、貼らせていただきます。
リンクのやり方として、これで正しいかどうか、お分かりになる方は、どうか教えてくださいm(_ _)m
リンクについて・・・・(VisualC++ 2008 Express Edition)
Re:リンクについて・・・・(VisualC++ 2008 Express Edition)
VisualC++ は自動でリンクを行ってくれます。(つまり、正しいです)
正確に言えば、プロジェクトに追加されているソースファイルをコンパイルし、
そのままリンクされます。
(ビルドを実行したときに出る出力ウインドウを見れば判ると思います)
正確に言えば、プロジェクトに追加されているソースファイルをコンパイルし、
そのままリンクされます。
(ビルドを実行したときに出る出力ウインドウを見れば判ると思います)
Re:リンクについて・・・・(VisualC++ 2008 Express Edition)
お二方、ありがとうございました。
>御津凪さん
VisualC++は自動で行ってくれるのですね。
これは、便利ですね・・・・・。
ご回答、ありがとうございました^^
>YuOさん
>ビルド ≒ メイク = コンパイル + リンク
ちょっと、まだ始めたばかりで、メイクという言葉を知らない者でして、今ネットで調べてみたところ、まだ学んでいない言語(?)みたいでした^^;
なので、ちょっと理解できない部分もありますが、ビルドとは似て異なり、コンパイルとリンクを合わせたもののことを言うみたいですね。
これ、参考書の逆引きにメイク(make)って単語ないけど、学ぶ必要ないのかな・・・・・?
もしかして
>一応、これでビルドしたところ、問題なくできたのですが、リンクのやり方というのは、これでいいんでしょうか?
の部分は、正確には、
>一応、これでメイクしたところ、問題なく・・・・・・・
っという意味でしょうか・・・・?
と、とりあえず、後で調べてみます。
ご回答ありがとうございました^^
>御津凪さん
VisualC++は自動で行ってくれるのですね。
これは、便利ですね・・・・・。
ご回答、ありがとうございました^^
>YuOさん
>ビルド ≒ メイク = コンパイル + リンク
ちょっと、まだ始めたばかりで、メイクという言葉を知らない者でして、今ネットで調べてみたところ、まだ学んでいない言語(?)みたいでした^^;
なので、ちょっと理解できない部分もありますが、ビルドとは似て異なり、コンパイルとリンクを合わせたもののことを言うみたいですね。
これ、参考書の逆引きにメイク(make)って単語ないけど、学ぶ必要ないのかな・・・・・?
もしかして
>一応、これでビルドしたところ、問題なくできたのですが、リンクのやり方というのは、これでいいんでしょうか?
の部分は、正確には、
>一応、これでメイクしたところ、問題なく・・・・・・・
っという意味でしょうか・・・・?
と、とりあえず、後で調べてみます。
ご回答ありがとうございました^^
Re:リンクについて・・・・(VisualC++ 2008 Express Edition)
解決されていますが……。
ビルドとメイクは,細かいところは別として,
・多くの環境では,プログラムmakeを使うことが多い (ので「メイク」と呼ばれることがある)
・最近のVisual Studioやmsbuildエンジンではビルドと呼ぶ
といった程度の違いです。どちらも,
・何らかの前処理 (あれば)
・コンパイル
・何らかの中間処理 (あれば)
・リンク
・何らかの後処理 (あれば)
が行われます。
# UNIX系では,インストールにもmakeを使うことがありますね。
参考書だと,メイクの方が使われるかなぁ,と思って書いたのですが,逆に混乱させてしまったようですね。
ビルドとメイクは,細かいところは別として,
・多くの環境では,プログラムmakeを使うことが多い (ので「メイク」と呼ばれることがある)
・最近のVisual Studioやmsbuildエンジンではビルドと呼ぶ
といった程度の違いです。どちらも,
・何らかの前処理 (あれば)
・コンパイル
・何らかの中間処理 (あれば)
・リンク
・何らかの後処理 (あれば)
が行われます。
# UNIX系では,インストールにもmakeを使うことがありますね。
参考書だと,メイクの方が使われるかなぁ,と思って書いたのですが,逆に混乱させてしまったようですね。
Re:リンクについて・・・・(VisualC++ 2008 Express Edition)
>YuOさん
わざわざ配慮して下さったんですね。
ありがとうございます。
どうやら、今使ってる参考書ではmakeは使用しないみたいです^^;
必要とあらば、後々学んでみようかと思います。
わざわざ、御答ありがとうございました^^
わざわざ配慮して下さったんですね。
ありがとうございます。
どうやら、今使ってる参考書ではmakeは使用しないみたいです^^;
必要とあらば、後々学んでみようかと思います。
わざわざ、御答ありがとうございました^^