zoukankan      html  css  js  c++  java
  • Yocto开发笔记之《Makefile编写》(QQ交流群:519230208)

    开了一个交流群,欢迎爱好者和开发者一起交流,转载请注明出处。

    QQ群:519230208,为避免广告骚扰,申请时请注明 “开发者” 字样

    ========================================================

    automake和autoconf 生成大型项目的makefile编写 
    http://blog.csdn.net/fuli1215/article/details/6399175

    使用GNU Autoconf/Automake创建Makefile
    http://blog.csdn.net/exbob/article/details/6998430

    Makefile.am

    bin_PROGRAMS = bterminal sample_nmea
    
    bterminal_SOURCES = bterminal.c ble_serial.c
    bterminal_LDADD=../libs/libnmea.a
    
    sample_nmea_SOURCES = sample_nmea.c
    sample_nmea_LDADD=../libs/libnmea.a
    
    INCLUDES= -I../include
    
    AM_CFLAGS = @bterminal_CFLAGS@
    AM_LDFLAGS = @bterminal_LIBS@
    
    CLEANFILES = *~ 

    linux编程一定要会写makefile,否则工程不能织成网,每个文件只能单兵作战

    红色标记部分需要认真理解

    CC = gcc 
    
    #CC=arm-poky-linux-gnueabi-gcc --sysroot=/home/summer/test-yocto/qemuarm
    #LD=arm-poky-linux-gnueabi-ld --sysroot=/home/summer/test-yocto/qemuarm
    #CFLAGS=-O2 -pipe -g -feliminate-unused-debug-types
    #CXXFLAGS=-O2 -pipe -g -feliminate-unused-debug-types
     
    BIN = lib/libgpsserial.a 
    MODULES = gpsserial 
    SAMPLES = gpsreader
     
    OBJ = $(MODULES:%=build/gpsserial_gcc/%.o) 
    LINKOBJ = $(OBJ) $(RES)
    
    SMPLS = $(SAMPLES:%=samples_%)
    SMPLOBJ = $(SAMPLES:%=samples/%/main.o)
    
    INCS = -I include 
    LIBS = -lm -Llib -lgpsserial -Llibs  -lnmea
    
    .PHONY: all all-before all-after clean clean-custom doc
     
    all: all-before $(BIN) samples all-after 
    
    all-before:
        mkdir -p build/gpsserial_gcc
    
    clean: clean-custom 
        rm -f $(LINKOBJ) $(BIN) $(SMPLOBJ) $(SMPLS)
    
    doc:
        $(MAKE) -C doc
        
    remake: clean all
    
    $(BIN): $(LINKOBJ)
        ar rsc $@ $^
        ranlib $@
    
    build/gpsserial_gcc/%.o: src/%.c 
        $(CC) $(INCS) -c $< -o $@
    
    samples: $(SMPLS)
    
    samples_%: samples/%/main.o
        $(CC) $< $(LIBS) -o build/$@ -lm
    
    samples/%/main.o: samples/%/main.c
        $(CC) $(INCS)  -c $< -o $@
  • 相关阅读:
    测试
    【八十一题题目合集 微软面试100题 第八十一题】
    排队问题 【微软面试100题 第八十题】
    fiddler 正则 重定向IP
    浮动div 内部元素 垂直居中
    css 诡异的多出来的几像素
    前端开发 注意问题(1)input type=“number”
    实时监听input输入
    sudo执行命令时环境变量被重置的解决方法
    laravel4 中 Redirect::intended和Redirect::guest的关系及用法
  • 原文地址:https://www.cnblogs.com/alanfang/p/5131037.html
Copyright © 2011-2022 走看看