开发工具与C源代码编译入门
1. GNU make的特性与跨平台问题
GNU make具有很多其他变体所没有的扩展、内置规则和特性。在Linux系统上使用这些特性没问题,但如果在Solaris或BSD机器上期望同样的功能能正常工作,可能会遇到意外情况。不过,像GNU autotools这样的多平台构建系统可以解决这个问题。
2. Makefile的常规目标
大多数Makefile包含几个执行与编译相关辅助任务的标准目标,具体如下:
| 目标名称 | 作用 | 示例 |
| ---- | ---- | ---- |
| clean | 通常用于指示make删除所有目标文件和可执行文件,以便重新开始编译或打包软件 | make clean
clean: rm -f $(OBJS) myprog |
| distclean | 由GNU autotools系统生成的Makefile通常有此目标,用于删除所有非原始发行版的内容,包括Makefile本身 | - |
| install | 将文件和编译好的程序复制到Makefile认为系统上合适的位置。此操作有风险,建议先运行 make -n install 查看操作内容而不实际执行命令 | - |
| test或check | 一些开发者提供此目标,用于确保编译后一切正常 | - |
| depend | 通过使用编译器的 -M 选项检查源代码来创建依赖关系。这个目标比较特殊,因为它经常会修改Makefile本身,现在这种做法不太常见了 | - |
| a
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



