ルーチンは「ひと続きの処理」です。 ひとつのプログラムは1個以上のルーチンから成ります。 ライブラリは複数のプログラムをひとつ(のファイル)にまとめたものです。 アセンブリ言語で書かれたプログラムをアセンブルしたり、C言語で書かれたプログラムをコンパイルすると「オブジェクトファイル」が生成されます。 これらをリンカを使用して結合し、「ライブラリ形式」で出力することで「ライブラリ」は生成されます。 別にライブラリ形式にしなくても(=オブジェクトファイルのままでも)他のプログラム(のオブジェクトファイル)と結合することは可能です。「ただ、その数が多いといちいちひとつひとつ指定するのが大変に面倒」なので、ライブラリにしておく、というだけの話です。 (ライブラリにしておけば、リンカが勝手にそのライブラリ内を検索し、必要なオブジェクトだけを抜き出してリンクしてくれます)
のカギカッコのところが分かりません。教えていただけると助かります。すみません。
A 回答 (5件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
コンパイル後の中間形式とはどういうことでしょうか
コンパイルしたものは、それ自体では動きません。実効形式ではないので、ソースコード(人間が解読できる文字の羅列)と実行形式(機械が解読実行できる機械語形式)の中間なので、便宜上、中間形式と読んでいますが、ソースコードも、コンパイラが解読して翻訳しているので、機械には意味が分からないとは言えません。中間形式もリンカーには解読できますから、機械には意味が分からないとは言えません。そういうものです。
No.3
- 回答日時:
3個はリンクされているのか
リンカーがリンクします。コンパイル(コンパイラー)はリンク(リンカー)を含めて実行されます。
コンパイル後の中間形式であるコンパイルユニットは、一時ファイルであり、リンクしてロードモジュール(オブジェクトファイル・EXEファイル)を形成すると、通常は消えてしまいます。
コンパイルユニットとはなんでしょうか?例えば、以下のURLのcドライブに保存したa.exeをクリックするとコマンプロンプトの画面を一瞬出てきて消えるみたいな感じでしょうか?教えていただけると助かります。すみません。
https://oshiete.goo.ne.jp/qa/12680950.html
No.2
- 回答日時:
『 別にライブラリ形式にしなくても(=オブジェクトファイルのままでも)他のプログラム(のオブジェクトファイル)と結合することは可能です。
「ただ、その数が多いといちいちひとつひとつ指定するのが大変に面倒」なので、ライブラリにしておく、というだけの話です。』どのような開発環境で行おうとしているのか分かりませんが。
https://docs.oracle.com/cd/E19455-01/806-2734/ch …
や
https://qiita.com/edo_m18/items/9dfab147482b2ce3 …
が参考になるかと思います。
a.cがcドライブ、 b.cがデスクトップ、 c.cがdドライブにあると、3個指定しないといけなくなるので、全部同じところに保存しましょうということでしょう。
a.cがcドライブ、 b.cがデスクトップ、 c.cがdドライブにあると、3個指定しないといけなくなるので、全部同じところに保存しましょうということでしょう。
というのは、3個はリンクされているのでしょうか?教えていただけると助かります。すみません。
No.1
- 回答日時:
う~ん、cだと質問の説明にかなり近いけど、一般的には問題の大きい解説かな。
まず、プログラムは「翻訳単位」=ソースプログラム が良いかも。
リンカーは翻訳単位をコンパイルしたオブジェクトをリンクの単位とする
場合もあるけど、より小さい単位でリンクするリンカーも有るので
リンカーは必ずしも「プログラム」を結合するものじゃない。
翻訳単位に含まれるのは、cでは関数はルーチンでよいけど、
静的変数や定数定義等も含まれる。
c#やJavaではクラスが主軸でかなり雰囲気が違う。
c++もかなり無理やりクラスの概念をオブジェクトに詰め込んでる。
なので、これは visual studioのc あたりに特化した話として
解説して貰った方が良いかも。リンクシステムはプラットフォームや
コンパイラ/リンカ・ローダーによって思想がかなり異なるので
一般的にはもっといい加減でふわっとした定義しか出来ない。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) ラズパイ上の、pythonのエラーについて 1 2023/04/12 23:27
- 写真・ビデオ iPhoneのプライバシーとセキュリティの写真の項目について 2 2023/06/24 23:11
- iPhone(アイフォーン) iPhoneのプライバシーとセキュリティの写真の項目について 1 2023/06/24 20:25
- C言語・C++・C# PC画面を録画するプログラムでdllの読み込みエラー 1 2023/04/22 08:31
- その他(プログラミング・Web制作) Pythonのライブラリ、randomについて 3 2022/09/20 14:30
- iPhone(アイフォーン) 「ライブラリ」ってどこの事ですか? ※ 英語の勉強のために Amazon で買物をしたいのですが、「 2 2023/07/14 22:04
- 音楽・動画 AppleMusicについてです! サブスクに加入しています! 曲を「ライブラリに追加」を押してライ 1 2022/08/19 13:50
- 音楽・動画 勝手に別の音楽が流れるアマゾンミュージック 2 2023/07/20 17:12
- iCloud 【iTunes】CDをiPhoneに取り込めません 2 2022/09/19 09:59
- ノートパソコン パソコンのiTunesライブラリにエクスプローラーにある曲を引っ張って来てリンクさせたいのですが、エ 1 2023/04/06 07:49
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
逆コンパイルと逆アセンブルの...
-
C言語について。
-
これて逆じゃないですか?
-
C言語について。
-
コンソールアプリを作成するの...
-
私は
-
C言語 1から20までの逆数の和を...
-
Windows Formアプリからコンソ...
-
プログラムの実行時に'<'でリダ...
-
パソコン
-
あんまり考えたくないけど
-
10進数からN進数に変換するプロ...
-
バッチファイルで以下のような...
-
c#のTLS1.2での通信について
-
だいがくの電し書籍で
-
VisualStudio2022でC言語プログ...
-
VisualStudioでのプログラミン...
-
C言語って古いですか?
-
ホワイトハッカーを目指そうか...
-
【C言語】全角文字の配列を、全...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
UNIX上のプログラムで使うライ...
-
拡張子.niiのファイルの開き方...
-
Excel VBA のstr()関数でエラー
-
ライブラリ内の処理中における...
-
.NET(C#)でのスタックオーバー...
-
DXライブラリの画像の表示の仕...
-
MakefileのLDLIBSとLOADLIBESの...
-
PHPとMYSQLでトーナメント表作成
-
ライブラリParamQuery gridにつ...
-
pthreadのソースの入手方法
-
openCVの関数の中身を参照する...
-
VC++からExcel制御
-
Googlemapのように画像を拡大・...
-
ogg デコーダエンコーダについて
-
オブジェクトライブラリ
-
CygwinでOpenGLのプログラム中に…
-
動的ロードのメリット
-
OSX写真アプリへの複数のライブ...
-
iTuneライブラリとiPhone,iPod...
-
VC++のCRTの実装を覗き見たい
おすすめ情報