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字符串即可。

  • 相关阅读:
    微信小程序通过getPhoneNumber后台PHP解密获取用户手机号码
    设置API:wx.openSetting,wx.getSetting使用说明(示例:地图授权与取消授权后的重新授权)
    微信小程序之上传图片和图片预览
    微信小程序上传图片(前端+PHP后端)
    微信小程序拒绝授权后重新拉起授权窗口
    微信小程序如何使用 Git 实现版本管理和协作开发
    配置同时使用 Gitlab、Github、Gitee(码云) 共存的开发环境
    linux 系统下Anaconda的安装【安装python3.6环境首选】
    利用phpqrcode二维码生成类库合成带logo的二维码并且用合成的二维码生成海报(二)
    利用phpqrcode二维码生成类库和imagecopymerge函数制拼接图片的经验(一)
  • 原文地址:https://www.cnblogs.com/yanhc/p/2175257.html
Copyright © 2011-2022 走看看