关于编译的一些事儿:从头开始整理一套编译框架(一)

本文介绍了从零开始构建编译框架的过程,重点关注如何编写第一个Makefile及其遇到的问题,如交叉编译工具链的设置挑战、.o目标文件与源文件的混杂以及随着源码结构变化需要频繁调整Makefile的困扰。
摘要由CSDN通过智能技术生成

前言

    但凡接触过Makefile的同学,我想陈皓的《跟我一起写Makefile》必不陌生,其概述中的一句话我印象比较深,“会不会写makefile,从一个侧面说明了一个人是否具备完成大型工程的能力”。这两年以来,我一直在做产品支撑方面(系统级项目)的开发和维护,无论是底层驱动(Boot/BSP/Kernel)还是上层应用,编译方面的事情也参与了不少,认识上也是大有长进。对于我所接触的项目而言,整个系统的编译甚至已经上升到一个工程的维度,要兼顾易使用、易维护、可扩展,尤其注重编译效率,已经远不止是编译出一两个简单进程文件而已了。年前,因为开发调试过几个系统子应用,稍有收获,于是想着可以尝试从编译子应用的角度去理解整个系统项目的编译工程框架,是以从头开始做一番整理。

Demo应用

    出于示例需要,该Demo只是对我的系统子应用的简单抽象,不具有实际意义。
    目录结构:
   
    源码内容:
  ./public/main.c                                                        ./public/public.h
  
  1 #include "public.h"                                               |  1 #ifndef __PUBLIC_H__
  2                                                                   |  2 #define __PUBLIC_H__
  3 int main()                                                        |  3 
  4 {                                                                 |  4 
  5     printf("hello, fun.\n");                                      |  5 #inc
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值