Make の使い方.

Slides:



Advertisements
Similar presentations
情報アプリケーション1 2006 年 10 月 12 日 第四回資料 担当 重定 如彦. 目次 データの送信とフォーム クイズ CGI 複数のパーツのデータの分割方法 配列変数.
Advertisements

1 第5回 配列. 2 今回の目標 マクロ定義の効果を理解する。 1次元配列を理解する。 2次元配列を理解する。 ☆2 × 2の行列の行列式を求めるプログラ ムを作成する.
TeX で数式を書くための PowerPoint アドイン Ver (2011/06/26) Ver. 0.1 (2007/5/30)
コンピュータープログラミング(C言語)(2) 1.文字列出力と四則演算 (復習) 2.関数と分割コンパイル
情報・知能工学系 山本一公 プログラミング演習Ⅱ 第3回 配列(1) 情報・知能工学系 山本一公
初年次セミナー 第8回 データの入力.
UNIX利用法.
PROCESS 14:一般情報(2) InstallShieldLecture
UNIX利用法 情報ネットワーク特論資料.
2014年度 プログラミングⅡ ~ Cプログラミングやってみよう ~.
2015年度 プログラミングⅡ ~ Cプログラミングやってみよう ~.
担当:青木義満 情報工学科 3年生対象 専門科目 システムプログラミング 第2回 UNIX・Linuxの基礎 担当:青木義満
コンピュータープログラミング(C言語)(3) 1.関数と分割コンパイル (復習) 2.キーボード入力
Java I 第2回 (4/18)
コマンドプロンプトの起動と終了 最初に覚えるコマンド ディレクトリ構造とパス 各種コマンドの練習 Cコンパイルとプログラムの実行
初年次セミナー 第4回 整数と実数の取り扱い.
2013年度 プログラミングⅡ ~ Cプログラミングやってみよう ~.
1.1 C/C++言語 Hello.ccを作りコンパイルしてa.outを作り出し実行する
TeX で数式を書くための PowerPoint アドイン Ver. 0.1 (2007/5/30)
Mavenによる プロジェクト管理 近畿大学理工学部 情報学科3年  小野実.
システムプログラミング 第5回 情報工学科 篠埜 功 ヒアドキュメント レポート課題 main関数の引数 usageメッセージ
プログラミング入門2 第1回 導入 情報工学科 篠埜 功.
第2回ネットワークプログラミング 中村 修.
ISD実習E 2009年6月1日 read関数 read-macro back-quote 文字列のread 課題
OSとコマンド OS:コンピュータを使うための基本プログラム コマンド:OS上で使用できる命令 OS本体であるカーネルの内部コマンド
シミュレーション物理5 運動方程式の方法: サブルーチンの使い方.
ファイルシステムとコマンド.
情報工学科 3年生対象 専門科目 システムプログラミング 第2回 UNIX・Linuxの基礎(1) 担当:青木義満.
初年次セミナー 第2回 文字の出力.
TA 高田正法 B10 CPUを作る 2日目 SPIMのコンパイル TA 高田正法
Javaプログラムの実行まで バイト Javaの コード 実行 ソースコード Java ファイル名 ファイル名 abc.java
スクリプト言語を用いたPHITSの連続実行
補足説明.
情報工学科 3年生対象 専門科目 システムプログラミング 第5回、第6回 ヒアドキュメント レポート課題 情報工学科 篠埜 功.
OpenGLを使ったプログラム作成 澤見研究室
コマンドプロンプトの起動と終了 最初に覚えるコマンド ディレクトリ構造とパス 各種コマンドの練習 Cコンパイルとプログラムの実行
システムプログラミング 第3回、第4回、第5回、第6回 情報工学科 篠埜 功 makeコマンド 動的リンクライブラリ シェルスクリプト
第1回 プログラムの基本 他人が読めるプログラムを書く.
0.2 プロジェクトの準備 DXライブラリを使うための準備.
デジタル画像とC言語.
地域情報学 C言語プログラミング 第1回 導入、変数、型変換、printf関数 2016年11月11日
コンピュータ プレゼンテーション.
コーパス言語学 ~バッチ処理~ 2013.10. 28.
画像処理プログラミング 知的画像処理研究室 M2 小林 佳奈美.
情報工学科 3年生対象 専門科目 システムプログラミング 第4回 シェルスクリプト 情報工学科 篠埜 功.
B演習(言語処理系演習)第2回 田浦.
C言語 はじめに 2016年 吉田研究室.
UNIX演習 情報ネットワーク特論資料.
統計ソフトウエアRの基礎.
高度プログラミング演習 (01).
UNIX演習 情報ネットワーク特論資料.
電気・機械・情報概論 VBAプログラミング 第1回 2018年6月25日
TeX で数式を書くための PowerPoint アドイン Ver. 0.1 (2007/5/30)
TeX で数式を書くための PowerPoint アドイン Ver. 0.1 (2007/5/30)
Visual Studio 2013 の起動と プロジェクトの新規作成 (C プログラミング演習,Visual Studio 2019 対応) 金子邦彦.
情報工学科 3年生対象 専門科目 システムプログラミング 第3回 makeコマンド 動的リンクライブラリ 情報工学科 篠埜 功.
情報工学科 3年生対象 専門科目 システムプログラミング 第3回 makeコマンド 動的リンクライブラリ 情報工学科 篠埜 功.
Cp-1. Microsoft Visual Studio 2019 C++ の使い方 (C プログラミング演習,Visual Studio 2019 対応) 金子邦彦.
全体の流れ 画像ファイルを開き,画像データをメモリ上にロード メモリ上にロードした画像データに処理を加える
オブジェクト指向言語論 第七回 知能情報学部 新田直也.
プログラミング言語論 第九回 理工学部 情報システム工学科 新田直也.
オブジェクト指向言語論 第七回 知能情報学部 新田直也.
情報処理Ⅱ 2005年11月25日(金).
プログラミング演習II 2003年11月19日(第6回) 木村巌.
プログラミング演習II 2003年12月10日(第7回) 木村巌.
プロジェクト演習III,V <インタラクティブ・ゲーム制作> プログラミングコース
第4回 配列.
第5回 配列.
岩村雅一 知能情報工学演習I 第7回(後半第1回) 岩村雅一
第1章 文字の表示と計算 printfと演算子をやります.
Presentation transcript:

make の使い方

ファイルの種類 ソースファイル オブジェクトファイル 実行ファイル プログラマーが作成するプログラムファイルのこと C++ソースファイルごとに自動的に作られるファイル 実行ファイル 実行可能なプログラムファイル

コンパイルとリンク ソースファイル (作成,編集のためのファイル) コンパイル オブジェクトファイル リンク 実行ファイル (実行のためのファイル)

分割コンパイル コンパイル リンク ソースファイル オブジェクト ファイル 実行ファイル 個別のソースファイル別にコンパイルを行うこと

ファイルの依存関係 例えばprgA.c , prgB.c , prgC.c からプログラムを作るとする コンパイルコマンドは上記の通り ファイルの依存関係は次のようになっている prg:  prgA.o prgB.o prgC.oから作られる prgA.o: prgA.cのみから作られる prgB.o: prgB.cのみから作られる prgC.o: prgC.cのみから作られる $ cc -c prgA.c $ cc -c prgB.c $ cc -c prgC.c $ cc prgA.o prgB.o prgC.o -o prg

make とは 使用法 make の効用 ファイルの依存関係そのものを,あらかじめファイルとして記述しておく(最初に1度だけ) バッチファイルとの違い: 必要なソースファイルだけを再コンパイルする機能を有する

ファイルの依存関係をMakefileに「ターゲット:ソース」の形で書く 最初のCC=はコンパイラを指定し、CFLAGS=はコンパイル オプションを指定している。(マクロの項参照) makeを実行すると次のようになる CC= cc CFLAGS= -O prg: prgA.o prgB.o prgC.o prgA.o: prgA.c prgB.o: prgB.c prgC.o: prgC.c $ make cc -O -c prgA.c -o prgA.o cc -O -c prgB.c -o prgB.o cc -O -c prgC.c -o prgC.o cc prgA.o prgB.o prgC.o -o prg

Makefile の例 - UNIX の場合 - CC=cc CFLASG=-O main: main.o count.o cc –o main main.o count.o main.o : main.c cc –c –o main.o main.c count.o : count.c cc –c –o count.o count.c 拡張子 ソースファイル: .c オブジェクトファイル: .o

Makefile の例 - Windows の場合 - CC=cc CFLASG=-O main: main.obj count.obj cc –o main main.obj count.obj main.obj : main.cpp cc –c –o main.obj main.cpp count.obj : count.cpp cc –c –o count.obj count.cpp 拡張子 ソースファイル: .cpp オブジェクトファイル: .obj

Makefile の書き方 main: main.o count.o cc –o main main.o count.o 「:」で区切る main: main.o count.o cc –o main main.o count.o TABで字下げ main を作るためのコマンドは, 「 cc –o main main.o count.o」 であることを意味する

makeについて makeというは、Makefile に記述された「ファイルの依存関係」に従って,各種コマンドの自動実行を行なうユーティリティ Makefileはテキストファイルであり、通常プログラムのソースファイルと同じディレクトリに置く make の使用法 $ make とコマンドを入力することでコンパイルする makeを用いるとファイルの依存関係を毎回指定することなしにコンパイルできる。また、更新したファイルだけコンパイルするので、コンパイルの時間を短縮できる

マクロ 先ほどの例では、CC=ccと書いて、利用するコンパイラを指定 した。これは makeがCコンパイラ名として、CCという変数(マクロ)  に代入された文字列 を利用するという性質を利用している                             (CFLAGSも同様) これ以外にもマクロをユーザが定義して使うことが可能 OBJS=argA.o argB.o argC.o arg: $(OBJS) Arg: argA.o argB.o argC.o 同じ意味 マクロを利用すれば同じ事を何度も書く必要がなくなる