Makefile檔案的編寫

2021-10-04 15:12:57 字數 2667 閱讀 1699

一、變數定義

1、「:=」

a1:=a.0

a2:=$(a1) b.o

這種方式下變數a1的值是a.o,變數a2的值是a.o b.o。

2、「+=」

a1=a.0

a1+=b.0

這種方式下變數a1的值是「a.o b.o」。也就是說「+=」可以實現給變數追加值。

modules的值就是當前軟體**所有的功能目錄,即main、add、mul、div、sub、log

二、函式名

1、subst

格式:(su

bset

引數1,

引數2,

引數3)

功能:把

引數3中

的引數1

替換成參

數2返回

值:被替

換後的參

數32、p

atsu

bst格

式:(subset 引數1,引數2,引數3) 功能:把引數3中的引數1替換成引數2 返回值:被替換後的引數3 2、patsubst 格式:

(subse

t引數1

,引數2

,引數3

)功能:

把引數3

中的引數

1替換成

引數2返

回值:被

替換後的

引數32

、pat

subs

t格式:

(patsubset模式引數,引數1,引數2)

功能:把引數2中符合模式引數的單詞(單詞是指引數中被空格隔開的字串)替換成引數1

返回值:被編譯後的引數2

obj的值source變數裡所有.c檔案編譯成的.o檔案

3、wildcard

格式:$(wildcard模式引數)

功能:列出當前目錄下所有符合模式引數的檔名

返回值:當前目錄下所有符合模式引數的檔名

source的值為當前目錄下src目錄的所有.c檔案

4、addsuffix

格式:$(addsuffix 引數1,引數2)

功能:在引數2中的每個單詞加上字尾引數1

返回值:加上字尾的所有單詞

allobjs的值為所用功能目錄下的src目錄下的.o檔案

編寫makefile檔案的內容為:編寫總控makefile、功能目錄makefile、scripts的makefile

shell程式設計

一、變數

1、命名規則:必須由大寫字母、小寫字母、下劃線、數字,並且首字母不能是數字

注意:等號「=」左右不能出現空格

2、區域性變數

直接上例子:

#!/bin/bash

hello=」var1」

echo $hello

function func1

func1

echo $hello

結果:

二、字串

1、定義字串,建議值使用雙引號

name=「renxu」

echo $name

2、字串拼接

name=「renxu」

echo 「my name is $name」

3、拼接換行符、製表符

\n 代表換行符

\t 代表製表符tab

三、if條件語句

if [ 條件命令串 ]

then

[ 條件為真時的命令串 ]

else

[ 條件為假時的命令串 ]

fi判斷數字

if [ $number1 -eq $nubmer2 ] 是否相等 equal

if [ $number1 -ne $nubmer2 ] 是否不相等 not equal

if [ $number1 -gt $nubmer2 ] 是否大於 greater than

if [ $nmber1 -ge $nubmer2 ] 是否大於等於 greater or equal

if [ $number1 -lt $nubmer2 ] 是否小於 less than

if [ $number1 -le $nubmer2 ] 是否小於等於 less or equal

判斷字串

if [ -z a]判

斷字串a是否為

空if[

a ] 判斷字串a是否為空 if [

a]判斷字元

串a是否

為空if

[a=$b ] 比較字串a和字串b是否相等

注意:1、在「[」和「]」兩邊都由空格

2、在「=」兩邊也有空格

四、for語句

for var in [list]

do#code block

done

其中var是迴圈控制變數,[list]是var需要遍歷的乙個集合,do/done包含迴圈體。

例:輸出1到10

for line in $(seq -w 10);do

echo " $line"

done

seq –w 指的是預設補位

結果:

makefile檔案編寫

hello.c include include function.h int main function.c includeint fun1 int fun2 int fun3 function.h ifndef fun h define fun h int fun1 void int fun2 v...

Makefile檔案編寫

1 基本大全教程 2 四個賦值的區別 是最基本的賦值 是覆蓋之前的值 是如果沒有被賦值過就賦予等號後面的值 是新增等號後面的值其中 和 的區別是 立馬賦值,是整個makefile檔案讀取完後賦值。1 make會將整個makefile展開後,再決定變數的值。也就是說,變數的值將會是整個makefile...

Makefile檔案編寫

main3.c 1 include 2 include static lib.h 3 include fun.h 4 5int main void static lib.h和 1 extern int add int a,int b 2 extern int sub int a,int b 3 ex...