linux基本知識【2018.11.10】

2168 ワード

GCCコンパイラGCCはまたクロスプラットフォームコンパイラです
プロセス:ソースファイル(.c)->前処理(.i)->コンパイル(.o)->リンク->実行可能関数:機能mainメイン関数をカプセル化するために使用されるmainメイン関数:プログラムのエントリとエクスポート
gccの基本用法gcc hello.c-o helloファイルの名前は英語で始まる
-Wall:       
-O:      ,O0        ,-O   -O1
-g:             【      】(gdb)

     :gcc a.c b.c -o app

-c:   ,  .o    【    】
-E:   
   gcc -E hello.c                         // hello.c   ,         
   gcc -E hello.c -o hello.i             // hello.c   ,  hello.i
-s:      
	gcc -s hello.c -o hello.asm
-D:   
	eg:-DMACRO,   MACRO ,  #define MACRO
-I:            【            】
	eg    -I ./include
-L:              。【     】
	-L ./sqlit
-l:    
	-lname  

静的ライブラリ(.a)ライブラリをプログラムに統合すると、プログラムが肥大化し、アップグレードが困難になりますが、ライブラリファイルの場所を探す必要はありません.
静的ライブラリの名前:libname.a【nameはライブラリの名前】静的ライブラリの使用:gcc-o file flie.c-L.-lname静的ライブラリの作成:1、gcc-cソースファイル.c 2、arrcs静的ライブラリ名ターゲットファイル1ターゲットファイル2 rc:静的ライブラリが存在しない場合、そのライブラリファイルsを作成する:ライブラリファイルar-t libmyrand.a//ライブラリファイルar-d libmyrand.a add.o//add.oをライブラリ関数から削除し、エラーがないヒントar-dv linmyrand.a add.o//add.oライブラリファイルから削除、エラーメッセージ
動的ライブラリ:1、動的共有ライブラリ2、動的リンクライブラリ動的ライブラリの名前:libname.so【nameはライブラリの名前】ダイナミックライブラリの作成:gcc-shared-fPIC-oライブラリ名.soソースファイル.cダイナミックライブラリの使用:gccソースファイル.c./ライブラリ名.so-o実行可能ファイル名
gdbデバッガgcc-g test.c-o test gdb test//gdbデバッグモード機能に入る:デバッガデバッグコマンド:list(l):プログラムを表示し、行番号breakと続く(b):ブレークポイントb関数名の設定:関数入口にブレークポイントb行番号を追加:行番号にブレークポイントb行番号if条件を追加:条件が真の場合、ブレークポイントが有効になります.eg:b 5 if i=10 i=10の場合、5行目のブレークポイントdeleteブレークポイント番号:ブレークポイントcleanを削除すべてのブレークポイントclean+行番号を削除するか、ファイル名run(r)next(n)単一ステップ実行を開始します(呼び出し関数に入らない)step(s)単一ステップ実行(呼び出し関数に入る)continue(c)継続実行プログラムprint(p)変数名:指定変数値finish実行プログラムを表示:現在の関数が終わるまでwatch変数名:指定変数をモニタquit(q)gdbを退去
エンジニアリングファイルマネージャのmake makefile【デフォルト】で、Makefileも使用できます.同じディレクトリは1つだけが望ましいです.makefileはmakeが読み込んだ唯一のプロファイルです.makefileには通常、1、makeツールで作成するターゲット(target)が含まれます.通常はターゲットファイル/実行可能ファイルです.【実行可能ファイルは究極のターゲットです.究極のターゲットは1つだけです.】2、作成するターゲットに依存するファイル【.o】.各ターゲットを作成するときに実行するコマンド(command)で、この行はタブキーで始まる必要があります.eg:
    :
vim makefile   //  makefile  
      :
hello: hello.o
	gcc -o hello hello.o
hello.o:hello.c
	gcc -c hello.c

    :
#make
#./hello