各種システム開発・WEBコンテンツ制作・WEBデザイン・ホームページ制作・インフラ設計・構築・レンタルサーバー・ソフトウェア技術者のアウトソーシング事業を行っております。

1 月
30

ビルドの仕組みと流れ

技術スタッフ


統合開発環境にはビルドという機能があり、ビルドボタンをクリックするだけで実行形式の
ファイルを作ることができます。
しかし、ビルドで実行ファイルを作るまでにはいくつかの過程があり、各過程で中間ファイルを
生成して、最後に結合して実行ファイルを作っています。

 

以下の図は、組み込みソフトウェア開発の統合開発環境でソースコードから実行ファイルを
生成するまでの流れです。
基本的には、3つの過程を踏みます。

ソースコード(アセンブラ) ソースコード(C言語)
_____________   ____________
|            |  |           |
| mov a,x       |  | if(x>y) {      |
| cmp a        |  | z = x-y;       |
| brn A_START    |  |  }          |
|___________ |  |___________|

↓ ↓

アセンブル → リンク ← コンパイル

↓ ↓

実行形式ファイル 実行形式ファイル(デバッグ用)

 

1. コンパイル

プログラムを動かすには、コンピューターが解読できる機械語に変換する必要があります。
その最初の過程で、C言語で作ったソースコードからオブジェクトファイルという中間ファイルを
生成します。
ちなみに、統合開発環境には「ビルド」と「すべてをビルド」の2つのメニューがあり、前者は
修正していないソースコードは既存のオブジェクトファイルを使い、修正したファイルだけ
コンパイルしてオブジェクトコードを生成します。
このようにして、「ビルド」ではコンパイルする時間を短縮しています。

 

2. アセンブル

コンパイルと役割は同じで、アセンブラで作ったソースコードからオブジェクトファイルを
生成します。
なお、上の図ではコンパイルで直接オブジェクトファイルを生成する流れになっていますが、
統合環境開発がない時代は、コンパイルでC言語で作ったソースコードをアセンブラに変換して、
アセンブラからオブジェクトファイルを生成していました。
この機能を利用して、当時はアセンブラのコードを書くのに時間がかかる時は、C言語で作り
コンパイルしてアセンブラに変換して、そのアセンブラを改造して作ったこともあります。

 

3. リンク

リンクでは、コンパイルあるいはアセンブルで生成したオブジェクトファイルを結合して、
実行ファイルを生成します。
この時、組み込み開発の統合開発環境では、コンピューター書き込み用とデバッグ用の2つの
ファイルを生成します。
何故2つのファイルを生成するのか、コンピューター書き込み用は純粋な機械語のファイルで、
このファイルでは機械語レベルでのデバッグしかできません。
そのため、C言語とアセンブラのコード情報が含まれているデバッグ用の実行ファイルを生成して
そのファイルをロードしてデバッグをします。

以上が、ビルドで行っている過程になります。
そして話はここで終わりではなく、プログラマーの上を目指すには、コンパイルやアセンブルで
どのようなオブジェクトファイルを作るか、リンクでどのような構成の実行ファイルを作るか
考えたり、それを考慮したプログラムを作る必要がでてきます。
その話は次の機会に説明したいと思います。

 


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

月別アーカイブ

カテゴリ