• Makefile


    关键字:

    include xxx.mk

    CXX = g++

    CXXFLAGS = -std=c++11 -fPIC -shared -I../ -O3.................

    LDFLAGS = -L../   ...........

    LDLIBS = -labc (全名:libadc.so)  ddeeff.a .......                                       (默认先找动态库,静态最好把路径和名称写全?)

    LIBNAME = libxxx.so   (我想要的)

    $(MAKE) -C xxx      (到xxx目录下执行make,多个目录顺序编译如下:)

    SUBDIRS = aaa bbb ccc
    
    all : 
        $(MAKE) subdirs
        
    subdirs: $(SUBDIRS)
    
    .PHONY: $(SUBDIRS)
    $(SUBDIRS) : 
        $(MAKE) -C $@

    make depend (一种makefile的规则,通过扫描仪个目录下的所有CC++ 代码,从而判断出文件之间的依赖关系,如a.cc文件中调用了b.h(如以形势include<b.h>),如果之后a.cc文件被改动,那么只需要重新编译a.cc文件,不需要编译b.h文件。否则所有的文件都需要重新编译)

    depend:

      -$(CXX) -M $(CXXFLAGS) *.cpp > .depend.mk

    -include .depend.mk

    $^    (冒号后的所有对象)

    -for x in $(SUBDIRS); do $(MAKE) -C $$x clean; done

    -Wl,--no-undefined    未定义报错

    -Wl,--whole-archive $(LDLIBS) -Wl,--no-whole-archive    

    -Wl,--rpath,/aaa,/bbb,/ccc                              -Wl,-rpath=/ddd            动态库路径加上这个,避免可执行程序报找不到库的错误。

  • 相关阅读:
    iOS开发官方文档汇总
    Hadoop安装配置手册
    访问.Net程序集、COM和WMI
    UML用例图教程详解
    JIRA的详细安装和破解
    [转]编程经典好书分类
    走向资深架构师的旅程
    12款响应式 Lightbox(灯箱)效果插件
    ASP.NET MVC应用程序的安全性介绍总括
    MapReduce篇之InputFormat
  • 原文地址:https://www.cnblogs.com/bingdongwuchi/p/6649677.html
Copyright © 2020-2023  润新知