makefile編譯不同資料夾下檔案生成靜態庫

2021-09-22 01:24:31 字數 1186 閱讀 8297

在不同的檔案下:src資料夾中包含.c檔案,lib資料夾中包含.**件,obj資料夾中包含編譯過程中生成的.o檔案,bin資料夾中包含生成的目標檔案和.a檔案,**結構如下:

root:~/share/makefile$ tree 

├── bin

│ ├── libfun.a

│ └── main

├── include

│ └── main.h

├── makefile

├── obj

│ ├── add.o

│ ├── main.o

│ ├── main.so

│ ├── multis.o

│ └── sub.o

└── src

├── add.c

├── main.c

├── multis.c

└── sub.c

4 directories, 13 files

即由不同資料夾下的.c檔案和.h 檔案生成靜態庫libfun.a。

所需要的makefile如下:

dir_inc = ./include

dir_src = ./src

dir_obj = ./obj

dir_bin = ./bin

ar = ar

ranlib = ranlib

tar_get = libfun.a

src = $(wildcard $/*.c)

obj = $(patsubst %.c,$/%.o,$(notdir $))

target = main

bin_target = $/$

lib_target = $/$

cc = gcc

cflags = -g -wall -i$

#生成可執行檔案

$:$ $(cc) $(obj) -o $@

#生成動態庫

$:$ $ cru $ $(obj)

$ $$/%.o:$/%.c

$(cc) $(cflags) -c -fpic $< -o $@

.phony:clean

clean:

rm $/*.o

然後執行make,即可生成需要的靜態庫libfun.a

Android drawable不同資料夾的區別

首先drawable資源分為xxhdpi,xhdpi,hdpi,mdpi,ldpi,分別為超超高密度400dpi 左右 超高密度320dpi,高密度240dpi,中密度160dpi,低密度120dpi。目前的螢幕適配準備好xhdpi,hdpi就好了,太小的mdpi基本很少了,特別大的圖可以再準備一套...

GDB 多檔案 不同資料夾除錯

1.首先保證gcc flag 要有 g 圖為cmakelists.txt的c flags設定 2.對於執行檔案和原始檔不在同乙個資料夾的情況,在gdb執行的情況下,如圖 test pipeline為可執行檔案,用gdb開啟 3.在開啟的gdb命令列下,輸入r run命令 一定要執行,至少我測試了很多...

原創 samba實現不同許可權進入不同資料夾

要實現的效果 共享資料夾 user1,user2,user3,group1,group2 1 使用者user1屬於組group1 使用者user2屬於組group1和組group2 使用者user3屬於組group3 2 使用者user1 user2 user3可以各自進入自己的資料夾 3 使用者u...