日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

C指针原理(14)-C指针基础

發(fā)布時間:2025/3/12 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C指针原理(14)-C指针基础 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

make與makefile

make是一個工具程序(Utility software),經(jīng)由讀取叫做“makefile”的文件,自動化建構(gòu)軟件。它是一種轉(zhuǎn)化文件形式的工具,轉(zhuǎn)換的目標(biāo)稱為“target”;與此同時,它也檢查文件的依賴關(guān)系,如果需要的話,它會調(diào)用一些外部軟件來完成任務(wù)。它的依賴關(guān)系檢查系統(tǒng)非常簡單,主要根據(jù)依賴文件的修改時間進(jìn)行判斷。大多數(shù)情況下,它被用來編譯源代碼,生成結(jié)果代碼,然后把結(jié)果代碼連接起來生成可執(zhí)行文件或者庫文件。

makefile的格式是:

#用“井”號表明注釋。target(要生成的文件): dependencies(被依賴的文件)#命令前面用的是“tab”而非空格。#誤用空格是初學(xué)者容易犯的錯誤!命令1命令2命令3...命令n#可以使用“\”表示續(xù)行。注意,“\”之后不能有空格!

target通常是我們要生成的文件的名字,擺放的順序不重要,但第一個target是默認(rèn)的target。當(dāng)make不帶參數(shù)時,自動執(zhí)行第一個target。target也可以是要求make完成的動作,執(zhí)行這種target后并不能得到和target同名的文件,因此,也稱為偽target(phony target)。

dependencies是生成target所需的文件名列表。依賴可以為空,常用的“clean”target就常常沒有依賴,只有命令。

命令可以是任何一個shell能運行的命令。

2、makefile示例

我們先以“hello,world”為例,說明makefile的使用。在linux的shell環(huán)境中用vim編譯hello.c

myhaspl@myhaspl:~/2$ vim hello.c

在打開的VIM窗口中進(jìn)行編輯。

#include <stdio.h>int main(void){printf ("hello,world!");return 0;}

然后編譯,這次一步到位編譯完成

myhaspl@myhaspl:~/2$ gcc hello.c -o hellomyhaspl@myhaspl:~/2$ ./hello hello,world!

接著編寫makefile文件,實現(xiàn)hello程序的編譯自動化。Makefile文件內(nèi)容如下:

hello:hello.cgcc hello.c -o helloclean:rm hello

上面代碼中,clean后沒有被依賴的文件,因此,不會被make自動執(zhí)行,這種情況可理解為一種命令。

make依賴關(guān)系檢查系統(tǒng)非常簡單,主要根據(jù)依賴文件的修改時間進(jìn)行判斷,如果時間比編譯時的時間要新,才重新編譯,否則不會重新,如果需要調(diào)用make強(qiáng)行重新編譯,就需要將編譯后的目標(biāo)文件刪除。因此這里定義了clean,當(dāng)想重新調(diào)用make編譯hello.c時,可以主動調(diào)用make clean來清除編譯。

我們編譯,運行后,再使用clean選項清除目標(biāo)文件,重新編譯一次。

myhaspl@myhaspl:~/2$ makegcc hello.c -o hellomyhaspl@myhaspl:~/2$ ./hellohello,world!myhaspl@myhaspl:~/2$ make cleanrm hellomyhaspl@myhaspl:~/2$ makegcc hello.c -o hellomyhaspl@myhaspl:~/2$

總結(jié)

以上是生活随笔為你收集整理的C指针原理(14)-C指针基础的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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