(嵌入式)Windows與Ubantu下的C語言程式的編譯執行

想減肥的混子魚發表於2020-09-25

一、Windows下編寫執行程式

我們可以在任意一個編譯器下進行編寫程式和執行(此處使用的是VisualStudio 2019

1、首先我們需要建立一個C++檔案,隨後輸入以下程式碼

#include<stdio.h>

float x2x(int a, int b);//若子函式在主函式之後,則需要在此宣告子函式;反之則無需宣告

int main() {
	int a=0, b=0;
	float c=0;
	printf("input a: ");
	scanf_s("%d",&a);
	printf("input b: ");
	scanf_s("%d", &b);
	c=x2x(a, b);
	printf("%d + %d = %0.2f", a, b, c);
	return 0;
}

float x2x(int a, int b) {
	return a + b;
}

2、F5編譯執行該程式
3、執行結果
在這裡插入圖片描述

二、Ubantu下使用gcc編譯執行程式

1、單個程式編譯執行

1、進入文字編輯器(此處為Vim

vi Hello.c

2、寫入程式碼

#include<stdio.h>

int main(){
        printf("Hello World!!!\n");
        return 0;
}

3、使用gcc對該程式進行編輯並執行

gcc Hello.c -o Hello

./Hello

4、執行結果

Hello World!!!

2、多個程式編譯執行

1、同樣使用文字編輯器,分別編寫主函式(main1.c)以及子函式(sub1.c)

vi main1.c
#include<stdio.h>

float x2x(int a,int b);//在主函式中宣告子函式

int main(){
        int a=0,b=0;
        float c=0;
        printf("input a:");
        scanf("%d",&a);
        printf("input b:");
        scanf("%d",&b);
        c = sub1(a,b);
        printf("%d + %d = %0.2f\n",a,b,c);
        return 0;
}
vi sub1.c
float x2x(int a,int b){
        return a+b;
}

2、使用gcc編譯連結接著兩個檔案並編譯執行

gcc -o main1 main1.c sub1.c//或者gcc main1.c sub1.c -o main1

./main1

3、執行結果

三、Ubantu下使用Makefile編譯執行程式

如果ubantu下一個可執行檔案所需要的子檔案太多,我們要是使用gcc編譯可能就會非常繁瑣,因此在子檔案太多的情況下,我們可以使用makefile來編譯連結多個程式

Makefile的建立與使用:
1、首先我們需要在目錄下建立一個Makefile / makefile檔案,並進入檔案進行編寫

touch Makefile //touch makefile

vi Makefile //vi makefile

2、編寫以下程式碼

 //格式
 目標:依賴
 <tab>命令

(1)目標即所需要生成的檔案。
(2)依賴為生成目標檔案所需要的其餘檔案(可預設,預設時其對應的命令將強制執行)。
(3)命令則是生成目標檔案所需要的操作

注:命令前必須以tab開頭,不能使用空格

main: main1.o sub1.o//此處main為最終的可執行檔案
        gcc -o main  main1.o sub1.o
main1.o: main1.c
        gcc -c main1.c
sub1.o: sub1.c
        gcc -c sub1.c
        
//clean可以在執行make clean後清除冗餘檔案
clean:
        rm -rf *.o main

3、使用make命令編譯,最後執行

make

./main

4、執行結果
在這裡插入圖片描述

相關文章