Linux下C語言編程基礎(chǔ)

Linux下C語言編程基礎(chǔ)

ID:47162209

大?。?7.00 KB

頁(yè)數(shù):5頁(yè)

時(shí)間:2019-08-14

Linux下C語言編程基礎(chǔ)_第1頁(yè)
Linux下C語言編程基礎(chǔ)_第2頁(yè)
Linux下C語言編程基礎(chǔ)_第3頁(yè)
Linux下C語言編程基礎(chǔ)_第4頁(yè)
Linux下C語言編程基礎(chǔ)_第5頁(yè)
資源描述:

《Linux下C語言編程基礎(chǔ)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)。

1、Linux下C語言編程--基礎(chǔ)知識(shí)前言:?這篇文章介紹在LINUX下進(jìn)行C語言編程所需要的基礎(chǔ)知識(shí).在這篇文章當(dāng)中,我們將會(huì)學(xué)到以下內(nèi)容:?源程序編譯?Makefile的編寫?程序庫(kù)的鏈接?程序的調(diào)試?頭文件和系統(tǒng)求助?--------------------------------------------------------------------------------?1.源程序的編譯?在Linux下面,如果要編譯一個(gè)C語言源程序,我們要使用GNU的gcc編譯器.?下面我們以一個(gè)實(shí)例來說明如何使用gc

2、c編譯器.?假設(shè)我們有下面一個(gè)非常簡(jiǎn)單的源程序(hello.c):?int?main(int?argc,char?**argv)?{?printf("Hello?Linux");?}?要編譯這個(gè)程序,我們只要在命令行下執(zhí)行:?gcc?-o?hello?hello.c?gcc?編譯器就會(huì)為我們生成一個(gè)hello的可執(zhí)行文件.執(zhí)行./hello就可以看到程序的輸出結(jié)果了.命令行中?gcc表示我們是用gcc來編譯我們的源程序,-o?選項(xiàng)表示我們要求編譯器給我們輸出的可執(zhí)行文件名為hello?而hello.c是我們

3、的源程序文件.?gcc編譯器有許多選項(xiàng),一般來說我們只要知道其中的幾個(gè)就夠了.?-o選項(xiàng)我們已經(jīng)知道了,表示我們要求輸出的可執(zhí)行文件名.?-c選項(xiàng)表示我們只要求編譯器輸出目標(biāo)代碼,而不必要輸出可執(zhí)行文件.?-g選項(xiàng)表示我們要求編譯器在編譯的時(shí)候提供我們以后對(duì)程序進(jìn)行調(diào)試的信息.?知道了這三個(gè)選項(xiàng),我們就可以編譯我們自己所寫的簡(jiǎn)單的源程序了,如果你想要知道更多的選項(xiàng),可以查看gcc的幫助文檔,那里有著許多對(duì)其它選項(xiàng)的詳細(xì)說明.?2.Makefile的編寫?假設(shè)我們有下面這樣的一個(gè)程序,源代碼如下:?/*?main

4、.c?*/?#include?"mytool1.h"?#include?"mytool2.h"?int?main(int?argc,char?**argv)?{?mytool1_print("hello");?mytool2_print("hello");?}?/*?mytool1.h?*/?#ifndef?_MYTOOL_1_H?#define?_MYTOOL_1_H?void?mytool1_print(char?*print_str);?#endif?/*?mytool1.c?*/?#include?"m

5、ytool1.h"?void?mytool1_print(char?*print_str)?{?printf("This?is?mytool1?print?%s",print_str);?}?/*?mytool2.h?*/?#ifndef?_MYTOOL_2_H?#define?_MYTOOL_2_H?void?mytool2_print(char?*print_str);?#endif?/*?mytool2.c?*/?#include?"mytool2.h"?void?mytool2_print(char

6、?*print_str)?{?printf("This?is?mytool2?print?%s",print_str);?}?當(dāng)然由于這個(gè)程序是很短的我們可以這樣來編譯?gcc?-c?main.c?gcc?-c?mytool1.c?gcc?-c?mytool2.c?gcc?-o?main?main.o?mytool1.o?mytool2.o?這樣的話我們也可以產(chǎn)生main程序,而且也不時(shí)很麻煩.但是如果我們考慮一下如果有一天我們修改了其中的一個(gè)文件(比如說mytool1.c)那么我們難道還要重新輸入上面的命

7、令?也許你會(huì)說,這個(gè)很容易解決啊,我寫一個(gè)SHELL腳本,讓她幫我去完成不就可以了.是的對(duì)于這個(gè)程序來說,是可以起到作用的.但是當(dāng)我們把事情想的更復(fù)雜一點(diǎn),如果我們的程序有幾百個(gè)源程序的時(shí)候,難道也要編譯器重新一個(gè)一個(gè)的去編譯??為此,聰明的程序員們想出了一個(gè)很好的工具來做這件事情,這就是make.我們只要執(zhí)行以下make,就可以把上面的問題解決掉.在我們執(zhí)行make之前,我們要先編寫一個(gè)非常重要的文件.--Makefile.對(duì)于上面的那個(gè)程序來說,可能的一個(gè)Makefile的文件是:?#?這是上面那個(gè)程序的M

8、akefile文件?main:main.o?mytool1.o?mytool2.o?gcc?-o?main?main.o?mytool1.o?mytool2.o?main.o:main.c?mytool1.h?mytool2.h?gcc?-c?main.c?mytool1.o:mytool1.c?mytool1.h?gcc?-c?mytool1.c?mytool2.o:mytool2.

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。