makefile简单使用

makefile简单使用

写法:

写法一:

目标:依赖

tab键:规则命令

image

这样写缺点:一个文件改变,编译时全部文件重新编译。

原因:依赖文件如果比目标文件新,则重新生成目标。

隐含规则:默认处理第一个目标,如写法二结果是app,而不是main.o那些。可以指定目标,如makefile test,处理test目标

只有一个makefile文件,直接make。多个例如mk1,ma2,执行make -f mk1

搭配函数:

​ wildcard 可以进行内容匹配

​ patsubst 内容的替换

写法二:

image

写法三:

image

image
image

问题:
问题1:-l(L的小写)链接的到底是动态库还是静态库

答案:如果链接路径下同时有 .so 和 .a 那优先链接 .so

问题2:如果路径下同时有静态库和动态库如何链接静态库

答案:使用显示链接, gcc -l:lib***.a (将静态库的名字显示写出来)

或者在 gcc 编译的时候 加入参数 -static -lXXX, 则可以添加路径下面的静态库。

验证方法:

可以通过 ldd 命令查看生成的 目标文件链接的库,使用方法: ldd ***.o

posted @ 2021-10-08 23:18  君逸不是铁Five  阅读(35)  评论(0)    收藏  举报