zoukankan      html  css  js  c++  java
  • makefile基础_1

    ▶wildcard: 搜索当前目录下所有的.c文件。
    ▶addprefix $(TEST_DIR)/,$(TEST)) //给$(TEST)加前缀路径
    ▶$@: 目标变量。
    ▶$^: 目标依赖
    
    ▶.PONHY: clean :伪目标,会被无条件执行。
    
    ▶自动产生依赖:Gcc –M命 令生成该文件要依赖的文件。
    Gcc –MM命 令生成该文件要依赖的文件,不显示系统库文件。
    
    ▶make并发执行命令:make -j3 #同时开启3个进程去编译
    makefile中的每个命令,都会开启一个新的进程去执行;
    如果多条命令相关,要在一个进程中完成,则命令结尾追加:[; ] #中括号中的; 
    
    
    ▶:= 立即展开变量,一般在目标和目标依赖中使用立即展开变量。
    = 延迟展开变量,一般在命令中使用延迟展开变量。

    ▶生成静态库文件

    方式1:
    1,只编译不链接。
    gcc -o hello.o -c hello.c
    2,生成libhello.a
    ar rcs libhello.a hello.o
    3,使用方法-编译时使用
    假设main.c中使用hello函数。
    则编译方法:gcc -o test main.c -L./ -lhelo #-L : 指定引用库的所在路径; -l:指定库名
    --------
    方式2:
    1,也可以通过makefile文件生成库。
    2,makefile中也可以使用库。

    ▶生成动态库文件(.so文件)


    ▶自动化编译手顺:
    1. aclocal
    2. libtoolize --force
    3. autoconf
    4. autoheader
    5. automake --add-missing
    6. ./configure
    7. make
    8. make install

  • 相关阅读:
    统计学习方法学习笔记(一)--极大似然估计与贝叶斯估计原理及区别
    数据过拟合解决方法
    LSTM基础
    异方差产生与解决
    人工免疫相关算法
    Svm相关
    sscanf,sscanf_s及其相关用法
    C语言数组初始化
    生产者和消费者
    Linux线程-创建
  • 原文地址:https://www.cnblogs.com/mountain2011/p/12354934.html
Copyright © 2011-2022 走看看