このブログは主に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
http://blogs.yahoo.co.jp/komusa100/43172557.html
より
linuxで複数ファイルから、文字列を検索するコマンド
注意:階層構造(サブディレクトリ内)の検索もしてくれる。
$ find search-dir | xargs grep keyword
search-dir:検索するディレクトリ
keyword:検索する語
例:現在のディレクトリから test を含むファイルを検索
$ find ./ | xargs grep test
より
linuxで複数ファイルから、文字列を検索するコマンド
注意:階層構造(サブディレクトリ内)の検索もしてくれる。
$ find search-dir | xargs grep keyword
search-dir:検索するディレクトリ
keyword:検索する語
例:現在のディレクトリから test を含むファイルを検索
$ find ./ | xargs grep test
http://whiteoutput.sitemix.jp/2009/10/09/c%E8%A8%80%E8%AA%9E%E3%81%A7ctrlc%E3%82%92%E3%82%AD%E3%83%A3%E3%83%83%E3%83%81%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/
こちら
while文の無限ループをCtrl+Cで終了させた後
なんらかの処理を行いたい場合はこの方法を利用すると便利。
------------------------------------
-------------------------------------
こちら
while文の無限ループをCtrl+Cで終了させた後
なんらかの処理を行いたい場合はこの方法を利用すると便利。
------------------------------------
01 |
#include <stdio.h> |
02 |
#include <signal.h> |
03 |
04 |
int finished = 0; |
05 |
06 |
void interrupt( int sig) |
07 |
{ |
08 |
finished = 1; |
09 |
} - |
10 |
11 |
int main() { |
12 |
signal (SIGINT, interrupt); |
13 |
while (!finished){ |
14 |
printf ( "Hello World!\n" ); |
15 |
} |
16 |
printf ( "Thanks!\n" ); |
17 |
return 0; |
-------------------------------------
・リボン 「スライドショー」をクリック
・「スライドショーの設定」をクリック
・スライドの表示の項目で スライド指定(F)でスライド番号を指定する.
これで補足資料などは表示されない.
・「スライドショーの設定」をクリック
・スライドの表示の項目で スライド指定(F)でスライド番号を指定する.
これで補足資料などは表示されない.
カレンダー
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)