Skip to content

week1.md

al2698 edited this page Jun 17, 2022 · 3 revisions

編譯器

  • C(gcc):

    gcc hello.c -o hello  // 會編譯成exe檔
    ./hello  // 執行檔案
    gcc main.c sum.c -o run  //使用到兩個c檔案,主程式必須要 #include "sum.h"
    
    
    gcc -c -c fib.c -o fib  //只編譯不連結
    gcc -S fib.c -o fib.s  //編譯成組合語言
    gcc -c sum.s -o sum.o  //轉成目的檔(只編譯不連結) ==>很多 .o檔可以壓成一個函式庫

使用GDB進行Debug

$ gcc -g fact.c -o fact.o   
$ gdb fact.o   

打完之後會進入gdb模式

(gdb)  	# 這裡可以輸入命令 r(run; 全部執行) 或是 n(next; 一步一步執行)
		# 可以加上中斷點 b(break)  後面可以加上數字或是文字(斷點位置)
		# 如果要進去其他函式,可以使用 s
		# p: print (p r 會印出r的變量,p x=1 會把 x 設成 1 後再印出)
		# p 是 single assignment 會出現$
		# c(continue): 可以用在p完,讓程式碼繼續走
		# 如果有加上中斷點,可以使用 n(next) 進行下一步

建立切換分支

  • git branch : 知道有哪些main在branch中

  • git checkout -b master :建立一個新的master在branch中

  • git branch :就可以看見產生一個新的master(並換到master中)在branch中

  • git push origin master:就可以push剛剛建立的master

  • git branch main: 建立分支到branch中

  • git checkout main: 切換分支(Switched to branch 'main')

系統程式和系統軟體的差別

  • 系統程式是給程式設計師所使用的語言
  • 系統程式是寫成系統軟體的方式(e.g編譯器)
  • 補充:
    1. 編譯式(c,c++...):要先編譯程執行檔
    2. 解譯式(python...):不用先編譯,直接執行,大多是沒有宣告型態的語言
Clone this wiki locally