首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Makefile的伪目标

1、Makefile伪目标的格式: .PHONY : clean clean:     rm xxxx 2、Makefile伪目标的作用: 第一种情况: 如果我们需要书写这样的一个规则:规则所定义的命令不是去创建目标文件...当文件夹中没有clean这个文件的时候,我们输入“make clean”能按照初衷执行,但是一旦文件夹中出现clean文件,我们再次输入“make clean”,由于这个规则没有任何依赖文件,所以目标被认为是最新的而不去执行规则所定义的命令...为了解决问题,我们将目标clean定义成伪目标。...clean:   rm xxxx 如果同一个目录下有一个clean文件,那么  make clean的动作将不会执行rm动作; 所以,增加.PHONY伪目标的使用的话,就会忽略目录下clean这个文件,...直接执行rm动作; 第二种情况: 伪目标的另一种使用场合时在make的并行和递归执行过程中。

1.4K70

我能看懂的MakeFile(自命名,多文件,多目标)

我们的目标文件(就是拿来运行的那个)其实就是通过文件之间的依赖关系,对源文件进行编译而得到的,但是这个依赖关系系统不知道,所以需要我们告诉系统。Makefile就是一种很优秀的方法。...在all那一行上面的部分属于量赋值部分,右边的(*.o)文件是目标中间文件,后面需要将它实现。系统对源文件进行转换成中间文件,而后将这些中间文件合成可执行文件。...all : front back log sql .PHNOY : all 这两行的意思是:.PHNOY:all将all定义为一个伪目标,不用管那么多,只要知道这样就可以生成多个目标了。...all:front back log sql里面的front back log sql这四个都是目标,可以一次性生成。 当然,你不用伪目标的话应该是不行了。...如果你不想你的Makefile文件都叫Makefile,可以自己起个名字。 然后运行的时候这样:make -f 名字 清楚的时候这样: make -f 名字 -clean

1K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Scale Match:国科大提出小目标检测的尺度匹配方法,用于预训练数据集处理

    众所周知,小目标检测一直是比较棘手的技术问题,现有目标检测算法往往难以给出理想的结果,但在某些场合,小目标检测却非常有意义。 比如,长距离的视频监控,画面中的人物可能都比较小。...作者构建的 TinyPerson 细小人物目标数据库与其他知名的目标检测数据库的视觉比较: ? ?...TInyPerson数据集统计数据 当目标仅有十几个像素大小的时候,算法如何有效捕捉目标呢?...Psize(s;E)代表用于增加样本的外部数据集中目标尺度的统计直方图; Psize(s;Dtrain)则代表目标检测任务数据集中目标尺度的统计直方图; 尺度匹配(Scale Match)的过程就是让这两个直方图分布相似...图像直方图匹配中要保持像素值映射的单调性,目标检测中尺度匹配不需要严格单调(毕竟尺度调整之后该是什么目标还是什么目标),但作者也尝试了保持尺度调整单调性的Monotone Scale Match (MSM

    3.1K20

    收购图森未来失败,亚马逊的下一个目标是谁?

    我们挑选了3家自动驾驶/电动汽车公司,认为它们很有可能成为亚马逊下一个收购的目标。 策划&撰写:温暖 继谷歌、苹果之后,电商大佬亚马逊也终于对汽车行业“下手”了。...重重问题之下,通过收购自动驾驶/电动汽车公司显然能够直接帮助亚马逊的核心电子商务业务,实现“最后一英里”的物流战略,同时也能够降低整体的运输成本,提升运输效率。 下一个收购目标是谁?...这间接宣告了亚马逊收购计划的首个目标以失败告终,但如果要以收购的方式来促进业务增长、实现降本增效,亚马逊的下一个目标会是谁?...其实从图森未来身上,能够看出亚马逊选择收购目标的一个标准,包括以下几个方面:一、业务技术层面与亚马逊业务契合,图森未来专注于公路运输场景下的自动驾驶卡车系统研发,这能够与亚马逊的运输业务形成完美的搭配,...三、收购价格,除了业务和技术之外,通过亚马逊的目标选择也能够倒推出其能够接受的收购价格范围。

    55930

    Linux CC++工程中可生成ELF、动静态库文件的通用Makefile

    最近写了一个*nix环境下的Makefile文件,支持编译C/C++,同时能够通过参数配置生成ELF目标文件、动态链接库(.so)和静态链接库(.a)文件。...1 Makefile文件配置说明 首先,根据生成的目标文件类型(ELF可执行文件,动态链接库文件或静态链接库文件),配置GEN_LIBS、GEN_DYN_LIB、EXCUTE_BIN、STATIC_LIBS...其次,如果生成的目标文件依赖其它库文件,那么只要将LD_LIB_DIR设置成该动态库所在的目录,LD_LIBS设置成要链接的动态库文件名即可。...伪目标clean对应的命令make clean能够清除上次执行make命令产生的影响;伪目标help对应的命令make help能够在界面上输出Makefile文件中的重要变量的值,方便调试。...执行完make命令后,在当前目录下会生成.o目标文件以及.d依赖文件,ELF可执行文件放在工程的bin目录下,动/静态库文件放在工程的lib目录下。

    43110

    清华、北邮等高校研究人员实现具有 160 个目标的基于 SSVEP 的免校准 BCI 系统

    研究人员通过将不同的频率和相位编码到视觉刺激中,提出了许多基于SSVEP的多目标BCI系统。 传统的基于 SSVEP 的 BCI 包含有限的目标,用户可以连续输入多个字符来刺激一个系统启用多个目标。...在本项研究中,受多频率序列编码思想的启发,清华大学的研究人员开发了一种无校准的 SSVEP-BCI 系统,通过四个持续4秒的连续正弦刺激实现160个目标。...1 实验数据 本实验的视觉刺激频率为60Hz。 如图 1 所示,监视器以 10 × 16 矩阵的形式呈现 160 个目标,每个刺激以 96x96 像素的正方形呈现。...具体来说,“A0”方格是第一行的第一个目标,“B0”方格是第一行的第二个目标,“A1”方格是第二行的第一个目标。 实验过程中,被试眼睛与界面中心部分保持60cm的距离。...括号中的数字表示并行码字,彩条表示归一化的STFT幅度 3 结论 在该项研究中,研究人员通过扩展 MFSC 的思想,设计了一个实现 160 个目标的免校准 SSVEP-BCI 系统。

    62420

    make命令和makefile文件

    大家好,又见面了,我是全栈君   make命令和makefile文件的结合提供了一个在项目管理领域十分强大的工具,它不仅常被用于控制源代码的编译,而且还用于手册页的编写以及将应用程序安装到目标目录。   ...makefile文件由一组依赖关系和规则构成,每个依赖关系由一个目标和一组该目标所依赖的源文件组成,而规则描述了如何通过这些依赖文件创建目标,一般来说,目标是一个单独的可执行文件。....c a.h b.h 3.o: 3.c b.h c.h   依赖关系定义了最终应用程序里的每个文件和源文件之间的关系   如果想一次创建多个文件,可以利用伪目标all all: myapp...myapp.1   建议约定:在自己的makefile文件中将第一个目标定为all,然后再列出其它重属目标 1.2 规则   makefile文件中一个非常奇怪而又令人遗憾的语法现象:空格和制表符是有区别的...,规则所在的行必须以制表符开头,用空格是不行的,如果makefile文件中的某行以空格结尾,也可能导致make命令执行失败。

    2.6K40

    Makefile 使用总结

    中可以引用其他Makefile) 读入被include的其他Makefile 初始化文件中的变量 推导隐晦规则, 并分析所有规则 为所有的目标文件创建依赖关系链 根据依赖关系, 决定哪些目标要重新生成...2.2.5 目标变量 作用是使变量的作用域仅限于这个目标(target), 而不像之前例子中定义的变量, 对整个Makefile都有效....非默认情况下, 可以在 make 命令中指定特定的 Makefile 和特定的 目标....传递成功 VALUE2: 失败 other makefile end make[1]: Leaving directory `/path/to...下面列举一些常用的伪目标, 如果在自己项目的Makefile合理使用这些伪目标的话, 可以让我们自己的Makefile看起来更专业, 呵呵 :) 伪目标 含义 all 所有目标的目标,其功能一般是编译所有的目标

    3.6K30

    makefile 基础、进阶及常用 makefile

    命令:通过执行该命令由依赖文件生成目标 makefile 工作原理 1、若想生成目标,检查规则中的依赖条件是否存在,如不存在,则寻找是否有规则用来生成该依赖文件 2、检查规则中的目标是否需要更新,必须先检查它的所有依赖...,依赖中有任一个被更新,则目标必须更新 分析各个目标和依赖之间的关系 根据依赖关系自底向上执行命令 根据修改时间比目标新,确定更新 如果目标不依赖任何条件,则执行对应命令,以示更新 一个最简单的 makefile...makefile 中的 all 因为 makefile 的执行流程是找到第一个目标作为最终生成的目标,如果顺序错乱了,makefile 就可能报错,all 方法就是解决这个问题而存在的,并且,all 方法可以让一个...解决这个问题的办法就是将 clean 方法声明为一个_伪目标_,做就就是让 clean 无论如何都更新,同样我们生成的 all 目标也可能会出现这种情况,所以我们将它们两个都声明为伪目标,方法如下: src...同时注意看代码的人可能也发现了,rm -rf $(obj) main app 命令前增加了一个 - 符号,这个符号的目的就是如果这条命令执行失败了继续执行,不影响后续命令的执行。

    43210

    全民K歌后台编译优化:从40分钟到30秒

    1.不并行编译ok,并行编译就出错 目标依赖关系设置有问题,导致各个目标都并行在编译,比如有comm和cgi两个目标,实际上cgi是必须在comm编译完之后才能编译的,但是在makefile里没有让cgi...7.编译的时候make clean all有时会失败,有时会成功,但是make clean;make all就没有问题原因是在并发的时候clean all这两个目标并发执行了,没有先make clean...,再make all,导致刚刚make出来的文件被clean掉了。...目前想到的解决办法有三种: a. 使用make clean ;make all而不是make clean all,但是在cis上好像不支持 b....设置一个目标为clean_all,在makefile中把这个目标分成两个步骤,目前使用这个方案 ?

    1.8K50

    全民K歌后台编译优化:从40分钟到30秒

    : 1.不并行编译ok,并行编译就出错 目标依赖关系设置有问题,导致各个目标都并行在编译,比如有comm和cgi两个目标,实际上cgi是必须在comm编译完之后才能编译的,但是在makefile里没有让...原因是递归调用的makefile里面直接使用了make –f makefile这样的形式,而没有使用MAKE变量,直接修改成$(MAKE) –f makefile就可以了。...7.编译的时候make clean all有时会失败,有时会成功,但是make clean;make all就没有问题 原因是在并发的时候clean all这两个目标并发执行了,没有先make clean...目前想到的解决办法有三种: a. 使用make clean ;make all而不是make clean all,但是在cis上好像不支持 b....设置一个目标为clean_all,在makefile中把这个目标分成两个步骤,目前使用这个方案 ?

    1.5K70

    Make参数

    -b -m 这两个参数的作用是忽略和其它版本make的兼容性。 -B –always-make 认为所有的目标都需要更新(重编译)。 -C –directory= 指定读取makefile的目录。...—debug[=] 输出make的调试信息。它有几种不同的级别可供选择,如果没有参数,那就是输出最简单的调试信息。下面是的取值:a —— 也就是all,输出所有的调试信息。...输出的信息包括哪个makefile被解析,不需要被重编译的依赖文件(或是依赖目标)等。i —— 也就是implicit,输出所以的隐含规则。...-I –include-dir= 指定一个被包含makefile的搜索目标。可以使用多个“-I”参数来指定多个目录。 -j [] –jobs[=] 指同时运行命令的个数。...如果生成一个目标失败了,那么依赖于其上的目标就不会被执行了。 -l –load-average[=“—max-load[=] 指定make运行命令的负载。

    1.6K11

    Linux: Makefile自动化基础指南

    接下来将详细介绍如何在Makefile中调用当前脚本的目标,例如:make HOST=10.0.0.1 VERSION=v1.0 all。我们将通过具体示例和详细解释,帮助读者理解并掌握这一技巧。...定义目标和规则 下面是一个简单的Makefile示例,展示了如何定义目标和规则: makefile # 定义变量 HOST = localhost VERSION = v1.0 # 目标:all all...all是一个伪目标,它依赖于build和deploy。 在Makefile中调用目标 为了在Makefile中调用目标,可以使用内置的$(MAKE)变量。...例如,我们可以修改上述示例,使得build和deploy目标可以递归调用自身: makefile # 定义变量 HOST = localhost VERSION = v1.0 # 目标:all all...例如,运行以下命令: sh make HOST=10.0.0.1 VERSION=v1.0 all 这将覆盖Makefile中定义的HOST和VERSION变量的默认值。

    16710

    可移植的 Makefile 教程

    只有一个意外:在 Makefile 中,第一个非特殊的目标会被认为是 默认目标(default target)。当调用 make 但是没有并没有指定一个目标时,这个默认目标就会被自动选择。...之所以用“伪”这个词,是因为它们没有相关文件与之关联,所以伪目标永远都不会是最新状态。习惯上,使用伪目标 all 作为默认目标。 我会用 game 作为新的 all 目标的一个先决条件。...更多实际目标,可以作为必要条件加入到默认目标中。这个 Makefile 的使用者也可以使用 make all 来构建整个项目。 另一个常见的伪目标是 clean,它会移除所有 make 创建的文件。...除非你先 make clean,否则缺失一个依赖,就意味着构建可能失败....本文译自:A Tutorial on Portable Makefiles 附录: 伪目标惯例 意义 all 所有目标的目标,一般为编译所有的目标,对同时编译多个程序极为有用 clean 删除由make

    1.4K10
    领券