• 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            动态库路径加上这个,避免可执行程序报找不到库的错误。

  • 相关阅读:
    mysql +java中文乱码
    POJ1325二分匹配或者DINIC(最小路径覆盖)
    POJ1324贪吃蛇(状态压缩广搜)
    POJ1324贪吃蛇(状态压缩广搜)
    POJ1548最小路径覆盖
    POJ1548最小路径覆盖
    POJ1018贪心(多路归并的想法)
    POJ1018贪心(多路归并的想法)
    POJ2771最大独立集元素个数
    POJ2771最大独立集元素个数
  • 原文地址:https://www.cnblogs.com/bingdongwuchi/p/6649677.html
Copyright © 2020-2023  润新知