Linux C 基礎

    Vim是Linux上的主要編輯軟件,Vim有三種工作模式:命令模式、插入模式、末行模式。

要掌握基本的三種模式的轉換

  1. 插入模式轉到命令模式:按 Esc 鍵

  2. 命令模式轉到插入模式:按 i 建

  3. 命令模式轉到末行模式:按:鍵

  4. 末行模式轉到命令模式:按 Esc 鍵


    調試器gdb可以在程序中設置斷點、查看變量值、一步步的地跟蹤程序的執行過程,利用調試器的這些功能可以方便的找出程序中存在的非語法錯誤。

gdb調試的對象是可執行文件,而不是程序的源代碼,如下步驟:

  1. gdb  可執行文件名

  2. (gdb)  l    //查看相對應程序的源碼

  3. (gdb)  b  6     //設置斷點,程序並沒有執行到第6行,而是第5行。

  4. (gdb)  info  b     //查看斷點的設置情況

  5. (gdb)  r    //運行代碼至斷點處

  6. (gdb)  p  n    //查看斷點處的相關變量值

  7. (gdb)  n    //鍵入一次n運行一條語句

  8. (gdb)  c   //程序繼續運行至斷點處

  9. (gdb)  q   //退出gdb


Makefile:

Makefile是用來告訴make如何編譯和連接一個程序,是make讀入的唯一配置文件,在一個Makefile中通常包含以下內容:

  1. 需要由make工具創建的目標體,可以認爲是目標文件、可執行文件。

  2. 要創建的目標體所以來的文件,即爲依賴文件。

  3. 創建每個目標體時需要運行的命令。

它的格式一般爲:

目標文件:依賴文件

   命令

注意:在Makefile中的每一個命令前必須要按Tab鍵

對於一般的Makefile編寫方式在這裏就不作累述,一下的是一個改良版的Makefile:

OBJS=main.o insert.o command.o kbd.o display.o utils.o files.o search.o
edit=$(objects)
    gcc -o edit $(objects)
main.o=main.c defs.h
    gcc -o main.o -c main.c
insert.o=insert.c defs.h buffer.h
    gcc -o insert.o -c insert.c
command.o=command.c defs.h command.h
    gcc -o command.o -c command.c
kbd.o=kbd.c defs.h command.h
    gcc -o kbd.o -c kbd.c
display.o=display.c defs.h buffer.h
    gcc -o display.o -c display.c
utils.o=utils.c defs.h
    gcc -o utils.o -c utils.c
files.o=files.c defs.h command.h buffer.h
    gcc -o files.o -c files.c
clean:
    rm edit $(OBJS)


下面這個又是個改良版的Makefile,比上面那個更爲方便:

OBJS=main.o insert.o command.o kbd.o display.o utils.o files.o \search.o
CC=gcc
CFLAGS=-Wall -o -g
edit=$(objects)
    $(CC) $^ -o $@   
main.o=main.c defs.h
    $(CC) $(FLAGS) -c $< -o $@
insert.o=insert.c defs.h buffer.h
    $(CC) $(FLAGS) -c $< -o $@
command.o=command.c defs.h command.h
    $(CC) $(FLAGS) -c $< -o $@
kbd.o=kbd.c defs.h command.h
    $(CC) $(FLAGS) -c $< -o $@
display.o=display.c defs.h buffer.h
    $(CC) $(FLAGS) -c $< -o $@
utils.o=utils.c defs.h
    $(CC) $(FLAGS) -c $< -o $@
files.o=files.c defs.h command.h buffer.h
    $(CC) $(FLAGS) -c $< -o $@
clean:
    rm edit $(OBJS)


$^ :所有不重複的依賴文件,並以空格分開

$< :第一個依賴文件的名稱

$@ :目標文件的完整名稱



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章