当前位置: 首页 > news >正文

make -c VS make -f

make 是一个用于构建(编译)项目的工具,它通过读取一个名为 Makefile 的文件来执行构建任务。make 命令有很多选项和参数,其中包括 -c-f

  1. make -c

    • 作用:指定进入指定的目录并执行相应的 Makefile

    • 示例:假设你有一个名为

      project
      

      的目录,该目录包含

      Makefile
      

      文件,你可以使用以下命令进入该目录并执行构建任务:

      make -C project
      
    • 这将进入 project 目录,并执行该目录下的 Makefile 文件中定义的构建规则。

  2. make -f

    • 作用:指定要使用的 Makefile 文件的名称。

    • 示例:假设你有一个名为

      custom_makefile
      

      的文件,你可以使用以下命令执行构建任务:

      make -f custom_makefile
      
    • 这将使用 custom_makefile 文件作为构建规则的来源,而不是默认的 Makefile

  3. 异同点:

    • 共同点: 两者都用于定制 make 命令的行为,使其能够执行指定的构建规则。
    • 不同点:
      • -c 用于指定目录,而 -f 用于指定文件。
      • -c 通常与目录结合使用,而 -f 通常与文件名结合使用。

示例:

假设有以下目录结构:

project/
|-- Makefile
|-- src/
|   |-- main.c
|   |-- utils.c
|   |-- utils.h

project/Makefile 可能如下所示:

# project/MakefileCC = gcc
CFLAGS = -Wallall: my_programmy_program: src/main.c src/utils.c$(CC) $(CFLAGS) $^ -o $@clean:rm -f my_program

现在,如果你想在 project 目录外执行构建任务,可以使用 -C 选项:

make -C project

或者,如果你有一个自定义的 Makefile 文件,比如 custom_makefile

make -f custom_makefile

这两者的选择取决于你想要执行的具体构建规则和文件组织结构。

http://www.lryc.cn/news/252469.html

相关文章:

  • Unity 代码控制Color无变化
  • 【Erlang进阶学习】2、匿名函数
  • 肖sir__mysql之视图__009
  • FPGA falsh相关知识总结
  • 升辉清洁IPO:广东清洁服务“一哥”还需要讲好全国化的故事
  • Python自动化办公:PDF文件的分割与合并
  • 破解app思路
  • 背景特效插件:Background Effects
  • 36.位运算符
  • C#异常处理-throw语句
  • PlantUML语法(全)及使用教程-时序图
  • 231204 刷题日报
  • PTA 7-229 sdut-C语言实验- 排序
  • 原生横向滚动条 吸附 页面底部
  • 1+x网络系统建设与运维(中级)-练习3
  • 知识图谱07——图片中表格开源ocr识别
  • 每日一练2023.12.4——正整数【PTA】
  • golang之net/http模块学习
  • Python中format函数用法
  • Android 断点调试
  • 对抗神经网络 CGAN实战详解 完整数据代码可直接运行
  • LeetCode417. Pacific Atlantic Water Flow
  • Python字符串模糊匹配工具:TheFuzz 库详解
  • Golang中WebSocket和WSS的支持
  • 亚马逊云科技re:Invent大会,助力安全构建规模化生成式AI应用
  • 价差后的几种方向,澳福如何操作才能盈利
  • 【Java】类和对象之超级详细的总结!!!
  • 机器学习的复习笔记3-回归的细谈
  • Git常用命令#切换分支
  • 【qml入门教程系列】:qml property使用介绍