表白網(wǎng)站制作平臺百度信息流投放
靜態(tài)庫編寫:
編寫.o文件gcc -c(小寫) seqlist.c(需要和頭文件、main.c文件在同一文件目錄下)
libs.a->去掉lib與.a剩下的為庫的名稱‘s’。
-ls是指庫名為s。
-L庫的路徑。
makefile文件編寫:
CFLAGS=-Wall -O2 -g -I ./inc/
LDFLAGS=-L./lib/ -llistAPP=app
SRC=$(wildcard ./src/*.c)
OBJ=$(patsubst %.c, %.o, $(SRC))CC=gcc
$(APP):$(OBJ)$(CC) -o $(APP) $^ $(LDFLAGS)
clean:rm -f $(OBJ) $(APP)
這個(gè)是編譯后的文件,app文件為編譯后的二進(jìn)制文件。?
?
?
makefile與shell腳本關(guān)系
shell?腳本和 makefile?是兩種完全不同的工具,但它們經(jīng)常在 UNIX 和 Linux 系統(tǒng)中一起使用,尤其是在軟件構(gòu)建和自動化工具鏈中。讓我們分別看看它們,然后探討它們之間的關(guān)系。
1. Shell 腳本:
? ?- Shell 腳本是一種用于自動化操作的腳本語言,它可以在 Unix 或 Linux shell 中運(yùn)行。
? ?- 它通常用于執(zhí)行日常的文件和目錄操作,處理文本,以及進(jìn)行系統(tǒng)管理任務(wù)。
? ?- Shell 腳本可以直接在命令行上運(yùn)行,或保存為.sh文件并以腳本方式執(zhí)行。
2. Makefile:
? ?-makefile是 make?工具使用的文件,它描述了如何從源代碼構(gòu)建目標(biāo)(通常是可執(zhí)行程序或庫)。
? ?- 它包含了一組規(guī)則,這些規(guī)則定義了目標(biāo)文件、依賴項(xiàng)以及將依賴項(xiàng)轉(zhuǎn)換為目標(biāo)的指令。
? ?- 指令通常是 shell 命令,因此 makefile 會頻繁地使用 shell 腳本。
? ?- `make` 工具會檢查文件的時(shí)間戳來確定哪些文件需要更新,從而只構(gòu)建那些實(shí)際需要更新的部分,而不是從頭開始構(gòu)建整個(gè)項(xiàng)目。
關(guān)系:
? ?- 在 makefile?中,你會經(jīng)??吹?shell 命令。這是因?yàn)?make?使用 shell 命令來執(zhí)行構(gòu)建任務(wù)。
? ?- `make` 可以執(zhí)行任何可在 shell 中運(yùn)行的命令,包括調(diào)用 shell 腳本。
? ?- 通常,較小的任務(wù)(如編譯單個(gè)文件)直接在 makefile 中使用 shell 命令完成,而更復(fù)雜的任務(wù)(如部署應(yīng)用程序)可能會調(diào)用單獨(dú)的 shell 腳本來完成。
? ?- 簡而言之,makefile 通常調(diào)用 shell 命令(或其他工具,如編譯器)來完成其工作。因此,shell 腳本和 makefile 經(jīng)常在構(gòu)建和部署過程中一起使用。
????????在實(shí)際開發(fā)中,尤其是在大型項(xiàng)目中,使用 make?和 makefile?可以極大地簡化構(gòu)建過程,而 shell 腳本則為自動化提供了額外的靈活性和功能。