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.mzph.cn/news/196835.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

聊聊logback的addtivity属性

序 本文主要研究一下logback的addtivity属性 LoggerModel ch/qos/logback/classic/model/LoggerModel.java PhaseIndicator(phase ProcessingPhase.SECOND) public class LoggerModel extends Model {private static final long serialVersionUID 5326913660697375316L;S…

【算法每日一练]-图论(保姆级教程 篇6(图上dp))#最大食物链 #游走

目录 题目:最大食物链 解法一: 解法二: 记忆化 题目:游走 思路: 题目:最大食物链 解法一: 我们标记f[i]是被f[x]捕食的点对应的类食物链数 不难得出: f[x]∑(f[i]) 首先从生…

206 反转链表

解题思路可以有两种方法:递归 or 迭代。 \qquad 迭代:通过使用for循环遍历,完成目标。方法直观,容易理解。 \qquad 递归:通过函数调用其自身,完成目标。递归最复杂、最重要的部分就是递归函数的构建&#…

【数据结构】——栈|队列(基本功能)

目录 栈 基本概念 栈的常见基本操作 栈的存储 ✌栈的基本操作实现 栈的构建 栈的初始化 入栈 打印栈 出栈 获取栈顶元素 获取栈的有效元素个数 判断栈是否为空 销毁栈 队列 基本概念 队列的常见基本操作 ✌队列的基本操作实现 队列的构建 初始化 入队列 出…

Spring Security 6.x 系列(9)—— 基于过滤器链的源码分析(二)

一、前言 在本系列文章: Spring Security 6.x 系列(4)—— 基于过滤器链的源码分析(一)中着重分析了Spring Security在Spring Boot 的自动配置、 DefaultSecurityFilterChain 的构造流程、FilterChainProxy 的构造流…

假设检验(四)(非参数假设检验)

文章目录 分布假设检验参考文献 在有些实际问题中,无法预知总体服从何种分布,而希望根据样本来检验对总体分布所提出的假设,或者想通过样本来检验对总体之间的关系所提出的假设。这一类问题就是非参数假设检验问题。非参数假设检验包括分布假…

【重点】【前缀和】560. 和为 K 的子数组

题目 解法1&#xff1a;哈希表 class Solution {public int subarraySum(int[] nums, int k) {int[] sumArray new int[nums.length];Map<Integer, Integer> sumToCountMap new HashMap<>();for (int i 0; i < nums.length; i) {if (i 0) {sumArray[i] n…

详解原生Spring当中的事务

&#x1f609;&#x1f609; 学习交流群&#xff1a; ✅✅1&#xff1a;这是孙哥suns给大家的福利&#xff01; ✨✨2&#xff1a;我们免费分享Netty、Dubbo、k8s、Mybatis、Spring...应用和源码级别的视频资料 &#x1f96d;&#x1f96d;3&#xff1a;QQ群&#xff1a;583783…

基于Langchain的txt文本向量库搭建与检索

这里的源码主要来自于Langchain-ChatGLM中的向量库部分&#xff0c;做了一些代码上的修改和封装&#xff0c;以适用于基于问题和包含数据库表描述的txt文件&#xff08;文件名为库表名&#xff0c;文件内容为库表中的字段及描述&#xff09;对数据库表进行快速检索。 中文分词…

Android 14 CarAudioService

文章目录 新功能AudioMirringoemCarService 新功能 AudioMirring 简单的说就是两个bus输出的是同一个音频数据。 构建的流程是&#xff1a; 一个输入src的bus&#xff0c;和两个输出dst的bus。 通过setParamter 设置到hal。 hal解析这些参数&#xff0c;将输入bus 的音频数据…

Spring Security 6.x 系列(8)—— 源码分析之配置器SecurityConfigurer接口及其分支实现

一、前言 本章主要内容是关于配置器的接口架构设计&#xff0c;任意找一个配置器一直往上找&#xff0c;就会找到配置器的顶级接口&#xff1a;SecurityConfigurer。 查看SecurityConfigurer接口的实现类情况&#xff1a; 在 AbstractHttpConfigurer 抽象类的下面可以看到所有…

idea类和方法模版

类模版 修改目标位置 class #if (${PACKAGE_NAME} && ${PACKAGE_NAME} ! "")package ${PACKAGE_NAME};#end #parse("File Header.java")/*** ${Description}* author whc ${YEAR}/${MONTH}/${DAY}* version v1.0 */public class ${NAME} { }inte…

【网络安全】虚假IP地址攻击如何防范?

在当今的网络时代&#xff0c;虚假IP地址攻击已成为一种新型的网络攻击方式&#xff0c;给网络安全带来了极大的威胁。那么&#xff0c;什么是虚假IP地址攻击&#xff1f;又如何进行溯源和防范呢&#xff1f;本文将为您揭开这一神秘面纱。 一、虚假IP地址攻击概述 虚假IP地址攻…

[python]离线加载fetch_20newsgroups数据集

首先手动下载这个数据包 http://qwone.com/~jason/20Newsgroups/20news-bydate.tar.gz 下载这个文件后和脚本放一起就行&#xff0c;然后 打开twenty_newsgroups.py文件&#xff08;在fetch_20newsgroups函数名上&#xff0c;右键转到定义即可找到&#xff09; 之后运行代码即…

羊大师教你如何有效应对冬季流感,保护自己与家人

羊大师教你如何有效应对冬季流感&#xff0c;保护自己与家人 随着冬季的临近&#xff0c;流感病毒将再次蔓延。如何预防冬季流感来袭&#xff0c;成为了许多人关注的话题。幸运的是&#xff0c;我们可以采取一系列的预防措施来保护自己和家人&#xff0c;避免被流感侵袭。下面…

【Altium designer 20】

Altium designer 20 1. Altium designer 201.1 原理图库1.1.1 上划岗 在字母前面加\在加字母1.1.2 自定义快捷键1.1.3 对齐1.1.4 在原有的电路图中使用封装1.1.5 利用excel创建IC类元件库1.1.6 现有原理图库分类以及调用1.1.7 现有原理图库中自动生成原理图库 1.2 绘制原理图1.…

【初阶解法-数据结构】包含min函数的栈(代码+图示)

【数据结构】刷题-包含min函数的栈(代码图示)-初阶解法 文章目录 【数据结构】刷题-包含min函数的栈(代码图示)-初阶解法题目提炼题目要求分析题目总结思路代码时间/空间复杂度进阶版 题目 定义栈的数据结构&#xff0c;请在该类型中实现一个能够得到栈中所含最小元素的 min 函…

Ubuntu22.04 交叉编译mp4V2 for Rv1106

一、配置工具链环境 sudo vim ~/.bashrc在文件最后添加 export PATH$PATH:/opt/arm-rockchip830-linux-uclibcgnueabihf/bin 保存&#xff0c;重启机器 二、下载mp4v2 下载路径&#xff1a;MP4v2 | mp4v2 三、修改CMakeLists.txt 四、执行编译 mkdir build cd buildcmak…

羊大师教你如何在冬天运动,然后悄悄惊艳所有人

羊大师教你如何在冬天运动&#xff0c;然后悄悄惊艳所有人 寒冷的冬季&#xff0c;寂静的清晨&#xff0c;你是否也曾感到在冰冷的天气中进行锻炼是一件非常困难的事情&#xff1f;但是&#xff0c;现在请跟随小编羊大师一起来探索冬季秘密运动&#xff0c;让你在春节惊艳众人…

人工智能_机器学习060_核函数对应数学公式_数据空间错位分割_简单介绍_以及核函数总结---人工智能工作笔记0100

我们之前做的都是线性分类问题,那么需要一根线来分割类别,但是,如果出现了,环形数据,我们知道,在二维中我们就无法分割了,那么有没有什么办法分割呢? 实际上是有的,可以看到,我们可以把数据进行升维,可以看到,如果把数据升高到2维度以上,可以看到,神奇的一幕出现了,这个时候,因…