初識Unbuntu的C語言編譯及VIM、GCC、MakeFile的使用

2020-09-28 10:01:05

輸出HelloWord程式

1.用vim創造一個新的名為HW的.c檔案

vim HW.c

2.編寫HelloWord程式

#include<stdio.h>
int main(){
printf("Hello Word!\n");}

3.編譯

gcc HW.c -o text

4.執行程式進行測試

./text

5.執行成功,結果如下
在這裡插入圖片描述

main函數與sub子函數

1.建立sub.c,main.c函數

vim sub1.c   #函數檔案
vim main.c   #主函數

2.編寫sub1.c

float x2x(float a,float b)
{
	return b * (a + b);   //定義x2x的運算模式
}

3.編寫main.c

#include<stdio.h>
#include"sub1.c"
int main()
{
	float a=4, b=5;                     //定義a,b的值
	printf("a x2x b = %f\n",x2x(a,b));  //輸出a x2x b的運算結果
	return 0;
}

5.使用 gcc 命令生成可執行檔案並執行

gcc -o main main.c    # 將輸出檔案放入main1中
./main                # 執行main

6.執行結果如下
在這裡插入圖片描述

ubuntu系統gcc 命令列方式編譯

0.makefile語法規則

target: prerequisites	# target為需要生成的目標,prerequisites為依賴項
	command				# command為make需要執行的shell命令

1.編寫sub1.h

float x2x(float a,float b);   //宣告該函數,作為標頭檔案

2.修改sub1.c,新增sub1.h標頭檔案

#include<stdio.h>
float x2x(float a,float b)
{
   return b * (a + b);   //定義x2x的運算模式
}

3.修改main.c

#include<stdio.h>
#include"sub1.h"                          //將標頭檔案改為.h,其餘不變
int main()
{
	float a=4, b=5;
	printf("a x2x b = %f\n",x2x(a,b));
	return 0;
}

4.建立makefile檔案

vim makefile

5.編輯makefile檔案

#MakeFile
main: main.o sub1.o

main.o: main.c sub1.h
		cc -c main.c     # 編譯 main.c 生成 main1.o
	
sub1.o: sub1.c sub1.h
		cc -c sub1.c     # 編譯 sub1.c 生成 sub1.o
	
clean:
		rm *.o main      #刪除生成的.o檔案

6.執行make命令,並再次執行main函數,結果如下
在這裡插入圖片描述

注意:command行縮排必需用Tab鍵;當main函數編譯後未被修改,make命令將顯示如下

在這裡插入圖片描述

windows系統下VC6.0編譯

1 建立空資料夾,新增一個名為sub1.h的標頭檔案,程式程式碼同上「sub1.c」

2 在此資料夾內建立名為main.c的檔案,程式程式碼同上「main.c」

3 用vc6.0編譯並執行,結果如下
在這裡插入圖片描述