惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

罗磊的独立博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园 - 三生石上(FineUI控件)
Hugging Face - Blog
Hugging Face - Blog
小众软件
小众软件
量子位
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
IT之家
IT之家
V
V2EX
阮一峰的网络日志
阮一峰的网络日志
爱范儿
爱范儿
人人都是产品经理
人人都是产品经理
博客园 - Franky
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园_首页
V
Visual Studio Blog
Last Week in AI
Last Week in AI
有赞技术团队
有赞技术团队
WordPress大学
WordPress大学
博客园 - 司徒正美
大猫的无限游戏
大猫的无限游戏
博客园 - 【当耐特】
MyScale Blog
MyScale Blog
月光博客
月光博客

博客园 - Ady Lee

【C语言】二维数组在内存中的存储方式 C++:继承访问属性(public/protected/private) 异步IRP的教训(已附DUMP) IRQL 文件过滤驱动中的重入处理 FastIO 用poolmon来查找内存泄露 缓存管理器 浅议Windows 2000/XP Pagefile组织管理 FCB CCB FileObject WDM驱动改可手动加卸载的NT驱动 Windows 文件过滤驱动经验总结 PKCS #1 RSA Encryption Version 1.5 解决STM32 I2C接口死锁在BUSY状态的方法讨论 亲测实验,stm32待机模式和停机模式唤醒程序的区别,以及唤醒后程序入口 python中使用 C 类型的数组以及ctypes 的用法 python ctypes库3_如何传递并返回一个数组 Windbg 内核态调试用户态程序然后下断点正确触发方法(亲自实现发现有效) ___security_cookie机制,防止栈溢出 security cookie 机制(2)--- 初始化___security_cookie
Makefile文件基本格式
Ady Lee · 2019-08-23 · via 博客园 - Ady Lee

以下是Makefile的基本模板

#指定编译器
CC = g++
#指定编译参数
CFLAGS = -std=c++11

#指定头文件路径,此处用于指定非标准库的头文件路径
INC = -I./ -I /usr/include

#指定要链接的动态库或静态库 -L是指定动态库路径,非标准的动态库需要此参数
LIBS = -lm -ldl -L/mylibs/xxx -lxxx

#把上面放一起
CXXFLAGS = ${CFLAGS} ${INC} ${LIBS}

#指定生成可执行文件名称
EXEC = a.out

#指定由哪些文件来生成可执行文件
OBJS = xxx1.o xxx2.o

#make执行动作
${EXEC} : ${OBJS}
${CC} -o $@ $^

#make clean动作
clean:
rm -rf ${OBJS}

#中间文件的生成
%.o:%.c
$(CC) $(CXXFLAGS) $(INC) -o $@ -c $<

不生成中间.o文件

#指定编译器
CC = g++
#指定编译参数
CFLAGS = -std=c++11

#指定头文件路径,此处用于指定非标准库的头文件路径
INC = -I./ -I /usr/include

#指定要链接的动态库或静态库 -L是指定动态库路径,非标准的动态库需要此参数
LIBS = -lm -ldl -L/mylibs/xxx -lxxx

#把上面放一起
CXXFLAGS = ${CFLAGS} ${INC} ${LIBS}

#指定生成可执行文件名称
EXEC = a.out

#指定由哪些文件来生成可执行文件
COBJS = xxx1.c xxx2.c

#make执行动作
all:
$(CC) -o $(EXEC) $(COBJS) $(CXXFLAGS)

#make clean动作
clean:
rm -rf ${OBJS}

关于生成  **.o 文件(只编译未链接文件);若是在大型项目中,只修改了其中一个文件的内容,那么没必要全部文件重新编译,只需编译修改部分即可。此时就推荐使用先编译生成 *.o文件  ; 再链接。