视频笔记2

封装的dll 都需要有相应的释放内存的函数。
制作dll_declspec(dllexport):  .h  .c 都需要添加
给提供外部的接口上面加上:dll_declspec(dllexport):
gcc -c test.c -o test.o -fPIC (生成与位置无关的代码)
gcc -shared -o lib库名.so test.o test1.o ---> lib库.so
L 指定路径  -l库名
src/  obj/  inc/ lib/  media/  makefile
ldd a.out ===>not found
1  加入c库
2  指定目录 ~/.bash_profile
目标:依赖
a.out:xx.c,xx.c,xx.c
 gcc xx.c xx.c xx.c -c
#src = xx.c xx.c xx.c
src = #(wildcard *.c)    取出所有的.c文件名 组成字符串src
#obj = xx.o xx.o xx.o
obj = $(patsubst %.c, %.o, $(src)) 把src中包含的.c文件转化成.o文件

ALL: a.out
a.out:$(obj)

自动变量
$@:  标识目标
$^   所有依赖关系
$<:  标识第一个依赖关系, 在模式规则,会将条件依次取出
目标:依赖
%.o:%.c
 gcc -c $< -o $@
src = $(wildcard ./src/*.c)  函数wildcard   参数1  表达式  返回文件名字符串
obj = $(patsubst ./src/%.c ./obj/%.o $(src))  patsubst函数 参数1 要替换的文件名  参数2  要替换为文件名     参数3
target = app
inc_path = ./inc
ALL:$(target)
$(target):$(obj):
 gcc $^ -o $@
$(obj): ./obj/%.o : ./src/%.c
 gcc -c $< -o $@ -I $(inc_path)
clean:
 -rm -rf $(obj) $(target)
.PHONY: clean ALL
 
 
posted @ 2019-09-12 09:22  countryboy666  阅读(137)  评论(0编辑  收藏  举报