日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

系統(tǒng)編譯:如何給Make命令來(lái)傳遞參數(shù)

在編譯系統(tǒng)的時(shí)候,我們一般只要簡(jiǎn)單的輸入make執(zhí)行就可以了 。但有時(shí)候,我們還是需要讓make命令帶入一些參數(shù)給makefile腳本 。
比如,你在代碼里面需要定義一個(gè)宏DEBUG來(lái)打開調(diào)試開關(guān),代碼如下:
int main()
{
int i=9;
#ifdef DEBUG
i=1;
#else
i=0;
#endif
printf("i=%dn", i);
return 0;
}


一般來(lái)說(shuō),這個(gè)宏定義可以通過(guò)直接修改源代碼進(jìn)行,但這樣顯然不是很好的辦法 。另外一個(gè)辦法是通過(guò)makefile修改,比如:
【系統(tǒng)編譯:如何給Make命令來(lái)傳遞參數(shù)】CFLAGS=-g -Wall -DDEBUG
object=myprog
all:$object
myprog:a.c
gcc ${CFLAGS} a.c -o ${object}


如果更進(jìn)一步,連makefile都不想修改,我們可以通過(guò)向make命令傳遞參數(shù)來(lái)進(jìn)行,為此,我們需要適當(dāng)?shù)男薷膍akefile如下:
CFLAGS=CFLAG
CFLAGS =-g -Wall -DDEBUG
object=myprog
all:$object
myprog:a.c
gcc ${CFLAGS} a.c -o ${object}


此時(shí),如果想打開DEBUG宏,我們可以這樣輸入make命令:
[ychq@ICM3-2 net]$ make CFLAG=-DDEBUG
gcc -g -Wall -DDEBUG a.c
a.c: In function `main":
a.c:9: warning: implicit declaration of function `printf" [ychq@ICM3-2 net]$


我們可以發(fā)現(xiàn),DEBUG宏已經(jīng)被正確的傳入 。

更進(jìn)一步的,我們可以通過(guò)傳遞不同的參數(shù)給make,讓make編譯不同的模塊 。

    推薦閱讀