zoukankan      html  css  js  c++  java
  • Linux GCC make文件的写法总结版

    目录结构为:

    inc/hello.h

    src/hello.c

    main/main.c

    Makefile

    文件内容为:

    hello.h:

    hello.c:

    main.c:

    Makefile:

    首先,需要明确一点,这里面有两个执行程序,一个make,一个gcc,在Makefile里这两个的语句也是分别占1行的。

    这里最主要的是路径的问题,因为不同的文件在不同的目录下面,所以要告诉程序文件所在的路径,而又有两个程序需要告知,而两个程序告知的方式又不同,所以这个问题一开始困扰了我好久,在好多好心人的帮助下,终于明白了一点。

    make的搜索路径设置方式为:vpath或VPATH,这个在许多资料里都讲过,而且这个是所有文件都可以设置的,.c, .h还有其它的都可以。

    gcc的搜索路径设置方式为(这个应该是只能设置头文件的搜索路径,因为是include):-I inc,

    而.c文件的搜索路径似乎不能设置,而只能在cc -c path/%.c中显示的写出,个人这么理解。

    而有一种方式是可以不用显示的写出的,而且也不用吧,%.c也写出,就是用make的自动化变量

    “$<”和“$@”则是自动化变量,“$<”表示所有的依赖目标集(%.c),“$@”表示目标集(%.o)。

    (是make的变量,文件在当前目录没有找到的话,会自动搜索vpath中设置的路径,如果不用这个那么如果.c在不在当前目录下,-c后面要指明目录位置,用这个后,可以在vpath中指明即可)

    因为是make的变量,所以用vpath设置的make的路径在这里面就起作用了,不用再显示的指明.c的路径了。而且这样写起来,更简洁。

    最近在看《深入理解计算机系统》网上下载的代码都是在Linux上跑的,呵呵,所以得自己写Makefile,所以,研究了一下,终于整明白了一点了,呵呵~~~

    下载的代码用这个Makefile文件可以很方便的编译:

    只需要修改path和app字符串即可。

  • 相关阅读:
    洛谷 P1194 飞扬的小鸟 题解
    洛谷 P1197 星球大战 题解
    洛谷 P1879 玉米田Corn Fields 题解
    洛谷 P2796 Facer的程序 题解
    洛谷 P2398 GCD SUM 题解
    洛谷 P2051 中国象棋 题解
    洛谷 P1472 奶牛家谱 Cow Pedigrees 题解
    洛谷 P1004 方格取数 题解
    洛谷 P2331 最大子矩阵 题解
    洛谷 P1073 最优贸易 题解
  • 原文地址:https://www.cnblogs.com/yanhc/p/2175257.html
Copyright © 2011-2022 走看看