日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

使用gcc编写c语言程序,利用GCC工具编译C语言程序

發(fā)布時(shí)間:2023/12/14 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用gcc编写c语言程序,利用GCC工具编译C语言程序 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

本帖最后由 沒(méi)有你 于 2020-4-18 16:22 編輯

一般我我們?cè)谟?jì)算機(jī)進(jìn)行C語(yǔ)言編程,大都是使用現(xiàn)成的IDE進(jìn)行編程,比如codeblock。只要程序?qū)懞弥?#xff0c;按下build按鍵,程序就會(huì)被編譯和運(yùn)行。如果仔細(xì)研究其編譯過(guò)程的話,就會(huì)涉及到編譯器的東西。很多IDE都內(nèi)置了編譯器,最典型的就是GCC。GCC是一個(gè)開(kāi)源的強(qiáng)大編譯器,可以編譯多種語(yǔ)言,比如C、C++、java等。如果電腦系統(tǒng)是Linux,默認(rèn)會(huì)內(nèi)置GCC編譯器,可以在shell下直接操控GCC編譯器。如果電腦是Windows 7,則需要另外安裝GCC編譯器。接下來(lái),我簡(jiǎn)單分享一下在window 7下使用GCC編譯C語(yǔ)言的過(guò)程。

一、安裝GCC編譯器

有多種方式安裝GCC,這里推薦的是MinGW,鏈接地址:http://www.mingw.org/。進(jìn)入網(wǎng)站,找到download/installer,點(diǎn)擊就可以下載mingw-get-setup.exe。安裝之后,打開(kāi)桌面快捷文件MinGW Installer,在mingw32-gcc-bin項(xiàng),鼠標(biāo)右擊選擇mark for installation,然后關(guān)閉窗口,MinGW就會(huì)自動(dòng)下載和安裝GCC編譯器了,如圖所示:

gcc.JPG (107.38 KB, 下載次數(shù): 14)

2020-4-18 14:38 上傳

二、安裝make.exe

make.exe是執(zhí)行makefile文件用的,也可以通過(guò)MinGW軟件安裝。打開(kāi)桌面快捷文件MinGW Installer,在mingw32-make-bin項(xiàng),鼠標(biāo)右擊選擇mark for installation,然后關(guān)閉窗口,MinGW就會(huì)自動(dòng)下載和安裝make.exe了,如下圖所示:

make.JPG (145.2 KB, 下載次數(shù): 13)

2020-4-18 15:56 上傳

打開(kāi)C:\MinGW\bin,可以找到mingw32-make.exe,這個(gè)就是make.exe。如果有哪些IDE需要用到GCC編譯器,則需要將make.exe復(fù)制到IDE的bin文件夾中。

三、添加環(huán)境變量

右擊電腦屬性-高級(jí)系統(tǒng)設(shè)置-高級(jí)-環(huán)境變量-系統(tǒng)變量,在變量Path中編輯添加C:\MinGW\bin,如下圖所示

環(huán)境變量.JPG (46.07 KB, 下載次數(shù): 10)

2020-4-18 14:45 上傳

四、打印GCC和make版本

敲擊鍵盤(pán)"Windows圖標(biāo)+R“,調(diào)出運(yùn)行窗口,輸入cmd。在cmd窗口輸入gcc -v、make -v可以查看GCC和make的版本,如下圖所示:

測(cè)試GCC.JPG (85.83 KB, 下載次數(shù): 11)

2020-4-18 16:04 上傳

如果cmd窗口有正常打印版本號(hào),說(shuō)明安裝成功。

五、使用GCC編譯C語(yǔ)言程序

本次用到main.c、sum_up.h和sum_up.c這三個(gè)文件,代碼如下:

對(duì)于main.c:

#include

#include "sum_up.h"

void main(void)

{

unsigned char value1 = 5;

unsigned char value2 = 10;

printf("sum=%d\n",add_value(value1,value2));

}

對(duì)于sum_up.h:

#ifndef SUM_UP_H

#define SUM_UP_H

extern unsigned char add_value(unsigned char a,unsigned char b);

#endif

對(duì)于sum_up.c:

#include"sum_up.h"

unsigned char add_value(unsigned char a,unsigned char b)

{

unsigned char? ?? ???c = 0;

c = a + b;

return c;

}

然后依次在cmd窗口輸入gcc -c sum_up.c、gcc - main.c、gcc -o main.exe main.o sum_up.o、main.exe,即可得出運(yùn)算結(jié)果,如下圖所示:

運(yùn)行.JPG (51.18 KB, 下載次數(shù): 15)

2020-4-18 15:03 上傳

其中,cd test是進(jìn)入test文件夾,因?yàn)槲野讶齻€(gè)文件都放在這個(gè)文件夾里。執(zhí)行g(shù)cc -c sum_up.c,會(huì)生成sum_up.o文件,執(zhí)行g(shù)cc - main.c,會(huì)生成main.o文件。如下圖所示:

文件內(nèi)容.JPG (28.59 KB, 下載次數(shù): 10)

2020-4-18 15:07 上傳

現(xiàn)成的IDE編譯C語(yǔ)言,其實(shí)也有上面的步驟,只不過(guò)IDE幫我們做好了,所以我們觀察不到GCC編譯文件的過(guò)程。上面的例子就可以詳細(xì)觀察到GCC的操作過(guò)程。本次測(cè)試實(shí)驗(yàn)實(shí)現(xiàn)GCC編譯和鏈接2個(gè).c文件,并且成功執(zhí)行。但是,如果有多個(gè).c文件,是否也要一行一行輸入指令操作GCC編譯和鏈接?答案是沒(méi)必要。我們可以借助makefile文件。makefile定義了一系列的規(guī)則來(lái)指定哪些文件需要先編譯,哪些文件需要后編譯,哪些文件需要重新編譯,甚至于進(jìn)行更復(fù)雜的功能操作,因?yàn)?makefile就像一個(gè)Shell腳本一樣,也可以執(zhí)行操作系統(tǒng)的命令

六、借助makefile和make編譯C語(yǔ)言

這里還是使用上面例子用到的文件,在test文件夾新建一個(gè)文檔,命名為makefile,不加任何文件后綴,在文檔中添加:

main.exe: main.o sum_up.o

gcc -o main.exe main.o sum_up.o

main.o: main.c sum_up.h

gcc -c main.c

sum_up.o: sum_up.c sum_up.h

gcc -c sum_up.c

然后點(diǎn)擊保存,關(guān)閉文件。然后在cmd窗口輸入make和make.exe,運(yùn)行結(jié)果如下圖所示:

makefile.JPG (23.34 KB, 下載次數(shù): 13)

2020-4-18 15:48 上傳

? ? C語(yǔ)言文件的鏈接關(guān)系就交給makefile去描述,再用make就可以執(zhí)行makefile文件。文件夾內(nèi)容如下圖所示:

文件內(nèi)容2.JPG (32.45 KB, 下載次數(shù): 8)

2020-4-18 16:08 上傳上面兩個(gè)例子都是基于window 7 平臺(tái)的GCC編譯C語(yǔ)言例子。如果要編譯到單片機(jī)的程序,比如STM32,是否也可行?答案是不行。STM32雖然用到C語(yǔ)言,但是它是cortex M內(nèi)核的處理器,所以無(wú)法執(zhí)行GCC編譯的程序。編譯器可以使用arm-none-eabi-gcc,下載地址:https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads。后面有時(shí)間再分享一下arm-none-eabi-gcc編譯STM32工程的過(guò)程。

總結(jié)

以上是生活随笔為你收集整理的使用gcc编写c语言程序,利用GCC工具编译C语言程序的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。