このブログは主にPC関連の備忘録です.
今日はMakefileのお勉強とコンパイルのお勉強をしました。
自分の知識が間違っていたことと、Makefileの作り方も全然わかってないことに気づきました。
今日勉強して少しわかりました。
以下にコンパイルについてメモを記しておきましょう。
------------------------------------
$ gcc -o test test.c
ソースコード test.c から実行ファイル test を出力する。
これは
$ gcc test.c -o test
と同じ(知らなかった。。。。 順番が関係あると思ってた!!)
"-o" オプションは出力するファイル名を指定する。
"-o" オプションを指定しなかった場合 a.out という実行ファイルが出力される。
----------------------------------
オブジェクトファイルの出力について
オブジェクトファイルはコンパイルによって出力される。
ソースコードと実行ファイルの中間的存在のバイナリファイル。
プログラムの分割コンパイルなどに使用するみたい。
"-c"オプションをソースコードの方に付けてコンパイルをすることで得られる。
$ gcc -o test.o -c test.c
これでオブジェクトファイル test.o が出力される。実行ファイルは出力されない。
そこでこのオブジェクトファイルから実行ファイルを作成する方法は、
$ gcc -o test test.o
これで実行ファイル test が作成される。
----------------------------------
分割コンパイルについて
hello.cがmain関数
edajima.cが外部関数となっているとする。
このとき
$ gcc -o hello.o -c hello.c
$ gcc -o edajima.o -c edajima.c
$ gcc -o a.out hello.o edajima.o
とすれば実行ファイルa.outが得られる。
------------------------------------
そもそも実行ファイルとオブジェクトファイルの違いもろくに分かって無かったし。
-oオプションは実行ファイルを出力するものだと思っていた。
ほんとは出力するファイル名を指定するだけ!!
だからオブジェクトファイルも出力できる!!
そしてオブジェクトファイルを出力するためには、ソースコードのほうに-cオプションを付ければいい!!
それだけだ!!
それすら知らなかった!!
だめだねぇ。
参考ページ
自分の知識が間違っていたことと、Makefileの作り方も全然わかってないことに気づきました。
今日勉強して少しわかりました。
以下にコンパイルについてメモを記しておきましょう。
------------------------------------
$ gcc -o test test.c
ソースコード test.c から実行ファイル test を出力する。
これは
$ gcc test.c -o test
と同じ(知らなかった。。。。 順番が関係あると思ってた!!)
"-o" オプションは出力するファイル名を指定する。
"-o" オプションを指定しなかった場合 a.out という実行ファイルが出力される。
----------------------------------
オブジェクトファイルの出力について
オブジェクトファイルはコンパイルによって出力される。
ソースコードと実行ファイルの中間的存在のバイナリファイル。
プログラムの分割コンパイルなどに使用するみたい。
"-c"オプションをソースコードの方に付けてコンパイルをすることで得られる。
$ gcc -o test.o -c test.c
これでオブジェクトファイル test.o が出力される。実行ファイルは出力されない。
そこでこのオブジェクトファイルから実行ファイルを作成する方法は、
$ gcc -o test test.o
これで実行ファイル test が作成される。
----------------------------------
分割コンパイルについて
hello.cがmain関数
edajima.cが外部関数となっているとする。
このとき
$ gcc -o hello.o -c hello.c
$ gcc -o edajima.o -c edajima.c
$ gcc -o a.out hello.o edajima.o
とすれば実行ファイルa.outが得られる。
------------------------------------
そもそも実行ファイルとオブジェクトファイルの違いもろくに分かって無かったし。
-oオプションは実行ファイルを出力するものだと思っていた。
ほんとは出力するファイル名を指定するだけ!!
だからオブジェクトファイルも出力できる!!
そしてオブジェクトファイルを出力するためには、ソースコードのほうに-cオプションを付ければいい!!
それだけだ!!
それすら知らなかった!!
だめだねぇ。
参考ページ
PR
カレンダー
10 | 2024/11 | 12 |
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
ブログ内検索
カテゴリー
最新記事
(04/16)
(04/09)
(03/20)
(03/11)
(03/11)
最新トラックバック
プロフィール
HN:
onsoku50
性別:
非公開
フリーエリア
最古記事
(11/06)
(11/06)
(11/06)
(11/06)
(11/08)