首页
学习
活动
专区
工具
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 指定文件的生成目录

大家好,又见面了,我是你们的朋友全栈君。 1.上一篇博客虽然简单实现了自动处理依赖关系,但是生成的各种临时文件都混在一起,太乱了。...假定我们的源文件放在src目录,头文件放在inc目录,.o文件放在obj目录,.d文件放在dmk目录,Makefile和上述4个目录为同一级别。...$(D_SRC)的所有子目录同时把子目录下的.c文件遍历出来 假设src目录中有a.c,b.c,则$(SRC_C) 表示 src/a.c src/b.c 3.生成所有的.o文件依赖和.d文件集合 OBJ_C...c替换成.o,即a.o b.o addprefix表示增加前缀$(D_OBJ)/,则OBJ_C变量表示为obj/a.o obj/b.o 4.明白了上述语句之后我们可以把makefile写成如下状态 D_SRC...5.vpath 自动变量的使用,第一个参数是查找的类型,第二个是查找的目录 vpath %.c src #查找依赖时如果遇到%.c,则自动到src目录下寻找 D_SRC = src D_INC = -I

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

    PHP 数组合并的几种方式

    1. array_merge() 函数 ---- 将一个或多个数组合并为一个数组, 也可以用于重置数组键名 array_merge() 官方文档 : https://www.php.net/manual...一个参数 (重置数组键名) // 重置数组元素的键名(从0开始的索引数组) $array = array_merage($array); 使用场景: 2....多个参数 (合并数组键值) 站长源码网 合并规则 : 两个数值键名相同不会被覆盖, 非纯数字的键名相同后面的覆盖前面键值, 元素位置和前面的相同 $arr1 = [1, 'one' => '张三'];...($arr1 + $arr2);// [1, 'one' => '张三'] 3. array_merage()函数合并和数组相加合并区别 ---- []+[] 只要键名相同, 后面的键名相同的直接舍去...array_merage() 只有非纯数字的字符键名相同, 才会发生覆盖

    1.2K40

    自动生成Makefile的全过程详解

    在本文中,将给大家介绍如何使用autoconf和automake两个工具来帮助我们自动地生成符合自由软件惯例的Makefile,这样就可以象常 见的GNU程序一样,只要使用“....Makefile.am中定义的宏和目标,会指导automake生成指定的代码。例如,宏bin_PROGRAMS将导致编译和连接的目标被生成。...我们用automake产生出来的Makefile.in文件是符合GNU Makefile惯例的,接下来我们只要执行configure这个shell 脚本就可以产生合适的 Makefile 文件了。...7、 Makefile 在符合GNU Makefiel惯例的Makefile中,包含了一些基本的预先定义的操作: make 根据Makefile编译源代码,连接,生成目标文件,可执行文件。...五、结束语 通过上面的介绍,你应该可以很容易地生成一个你自己的符合GNU惯例的Makefile文件及对应的项目文件。

    1.8K20

    CMake入门实战——单个源文件

    什么是 CMake 你或许听过好几种 Make 工具,例如 GNU Make ,QT 的 qmake ,微软的 MS nmake,BSD Make(pmake),Makepp,等等。...CMake就是针对上面问题所设计的工具:它首先允许开发者编写一种平台无关的 CMakeList.txt 文件来定制整个编译流程,然后再根据目标用户的平台进一步生成所需的本地化 Makefile 和工程文件...在 linux 平台下使用 CMake 生成 Makefile 并编译的流程如下: 编写 CMake 配置文件 CMakeLists.txt 。...执行命令 cmake PATH 或者 ccmake PATH 生成 Makefile。其中, PATH 是 CMakeLists.txt 所在的目录。 使用 make 命令进行编译。...并保存在与 main.cc 源文件同个目录下: # CMake 最低版本号要求 cmake_minimum_required (VERSION 2.8) # 项目信息 project (Demo1) # 指定生成目标

    55220

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

    我们的目标文件(就是拿来运行的那个)其实就是通过文件之间的依赖关系,对源文件进行编译而得到的,但是这个依赖关系系统不知道,所以需要我们告诉系统。Makefile就是一种很优秀的方法。...all : front back log sql .PHNOY : all 这两行的意思是:.PHNOY:all将all定义为一个伪目标,不用管那么多,只要知道这样就可以生成多个目标了。...all:front back log sql里面的front back log sql这四个都是目标,可以一次性生成。 当然,你不用伪目标的话应该是不行了。...其中有两个小技巧, 1、比方说你要生成a.o,那么你可以不用写a.h,Makefile会自动推导规则。如果你的a.cpp只需要一个a.h的头文件,那么这个依赖你可以省了。...如果你不想你的Makefile文件都叫Makefile,可以自己起个名字。 然后运行的时候这样:make -f 名字 清楚的时候这样: make -f 名字 -clean

    1K30

    arXiv | 药物组合的深度生成模型

    sets ”,德州农机大学的Yang Shen课题组首次提出药物组合的深度生成模型。...HVGAE是以端到端的方式对基因-基因、疾病-疾病网络进行联合训练,最终得到学习好的疾病表征。 (2)基于强化学习生成药物组合 作者将药物组合设计问题设计为基于网络原则的图集生成问题。...作者提出多目标奖励(reward)机制,能够符合药物联合治疗的某些要求。...模型是利用不同的奖励机制、疾病集合和动作空间,将提出的强化模型分为三个阶段进行训练,利用HVGAE生成的疾病表征,逐渐关注目标疾病。...,依次为每种疾病(299种)生成药物组合,每次迭代都为给定疾病生成8种药物组合;与第二阶段针对所有疾病不同,第三阶段是针对特定疾病的。

    66450

    对比表示学习必知的几种训练目标

    对比学习的主要思想就是相似的样本的向量距离要近,不相似的要远.对比学习在有监督/无监督场景下都取得了非常亮眼的成绩,所以是我们炼丹的必备知识.早期的对比学习是只有一个正样本和一个负样本进行对比,最近的训练目标变成了一个...定义一个锚点(anchor) x,有个正例x+和一个负例x-,所以目标函数就是要最小化x和x+的距离,最大化x和x-的距离,定义如下所示: Lifted Structured Loss 该loss为了更好的计算效率...,充分利用了一个batch内所有pairwise的边.....非噪声样本的概率用P表示,噪声样本的概率用q表示,如下所示: 所以NCE的loss函数定义如下: 我们看到NCE loss只对一个正样本和一个噪声样本生效....例如,当温度较低时,损失主要是由小距离造成的,而大范围分离的表示不能起到很大作用。

    74310

    聊聊excel生成图片的几种方式

    正文 1.需求:把excel生成等比的图片。 2.实现思路:因为excel不能直接生成图片,所以需要先将excel => pdf => jpg,需要通过pdf中转一下才能保存为图片。...无 1.性能低; 2.不稳定,多并发操作,操作会挂; 3.系统资源占用高; 4.安装文件交大,安装时间长; 方式二 1.操作性能高; 2.资源占用少; 1.如果excel列中有透明图片,生成pdf的时候会不透明...,遮盖住图片下的文字,生成图片有瑕疵。...方式三 1.性能中等,比NPOI低,比原生excel高(快将近1/4); 2.并发操作稳定; 暂无,生成稳定,高并发不会导致失败,生成的图片比较完美。...5.结论:综合来说采用wps替代原生excel生成还是比较理想的方案,wps和原生excel的代码几乎一样,用原生代码去改,也比较好改,只不过wps安装的时候,比excel安装要麻烦一点。

    1.2K110

    几种自动生成verilog代码的方法

    介绍几种自动生成verilog代码的方法。...第二种:读配置文件再生成 与第一种的差异是,把各种可配置的信息存到配置文件里,如excel、json、yaml,在脚本里读取配置文件再用第一种方法生成字符串。...这种方法的好处是脚本相对固定,只需要修改配置文件就可以重新生成verilog代码。...但python脚本还是相对较乱,因为从配置参数到目标verilog中间需要各种字符串处理,如正则替换,format,进制转换等。当目标verilog的格式要求一变,python脚本还是需要重写。...我们需要提取出这段python,把python的执行结果替换到原处。 当然为了保证代码可以再次生成,我们不能删除python源码,而是需要在注释下方生成。

    20210

    【组合数学】生成函数 ( 性质总结 | 重要的生成函数 ) ★

    文章目录 一、生成函数性质总结 二、生成函数与序列的对应 参考博客 : 【组合数学】生成函数 简要介绍 ( 生成函数定义 | 牛顿二项式系数 | 常用的生成函数 | 与常数相关 | 与二项式系数相关 |...与多项式系数相关 ) 【组合数学】生成函数 ( 线性性质 | 乘积性质 ) 【组合数学】生成函数 ( 移位性质 ) 【组合数学】生成函数 ( 求和性质 ) 【组合数学】生成函数 ( 换元性质 | 求导性质...生成函数积分性质 : b_n = \cfrac{a_n}{n+1} , 则 B(x) =\cfrac{1}{x} \int^{x}_{0} A( x)dx 二、生成函数与序列的对应 ---- 给定序列...\{a_n\} 或 a_n 的递推方程 , 求生成函数 G(x) , 需要使用级数的性质 和 一些重要的级数 ; 常用的生成函数取值 : 1 数列相关 : \{a_n\} , a_n...{n} ; \begin{aligned} A(x) & = \sum_{n=0}^{\infty} \dbinom{m}{n} x^n = ( 1 + x ) ^m \end{aligned} 组合数相关

    1.1K00

    【makefile】

    Makefile实际上是一个文件的依赖关系,也就是说, target这一个或多个的目标文件依赖于dependency中的文件,其生成规则定义在命令command中。...如果只希望利用gcc命令来生成test.o目标文件,这时,就可以利用如下的makefile来定义test.o的创建规则: #This makefile just is a example....2、Makefile的基本内容 Makefile一般包括包含:显式规则、变量定义、隐含规则、文件指示和注释等五个内容。 (1)显式规则:显式规则说明如何生成一个或多个的目标文件。...这是由Makefile的书写者明显指出,要生成的文件,文件的依赖文件,生成的命令。...2.2隐含规则 GNU make 包含有一些内置的或隐含的规则,这些规则定义了如何从不同的依赖文件建立特定类型的目标。

    2K00

    如何快速找到组合逻辑生成的时钟

    组合逻辑生成的时钟,在FPGA设计中应该避免,尤其是该时钟扇出很大或者时钟频率较高,即便是该时钟通过BUFG进入全局时钟网络。...组合逻辑生成时钟的典型特征是在网表中我们能够看到LUT(查找表)的输出直接连接或通过BUFG连接到时序逻辑单元比如触发器的时钟端口。...最直接的危害是组合逻辑可能会产生毛刺(Glitch),从而导致电路功能错误。看个案例,如下图所示。由于毛刺的存在,计数器多计数了一次,导致错误。 ?...从时序角度而言,组合逻辑生成的时钟会增加时钟线上的延迟,从而导致过大的Clock Skew,最终造成建立时间和保持时间违例。...代码第2行是找到所有的时钟网线,第3行对该时钟网线进行过滤筛选,凡是与网线相连的pin是输出端口且其REF_PIN_NAME是O(对应LUT输出)或Q(对应触发器输出)的,即为目标时钟端口。

    1.6K40

    关于编译的重要概念总结

    GNU操作系统是一种由自由软件构成的类 Unix 操作系统,该系统基于 Linux 内核,目标在于建立一个完全相容于UNIX的自由软件环境。 当时Unix 系统开始收费和商业闭源了。...将函数库中相应的代码组合到目标文件中,汇编文件和系统库文件链接起来,生成在特定平台可执行的程序。 最早的操作系统中,是没有链接器的,由加载器loader进行工作,所以ld的命名由此而来。...Makefile在绝大多数的IDE 开发环境中都在使用,譬如 Visual C++的 nmake、linux 下的 GNU make、Qt 的 qmake 等等。...那么cmake为了解决这个问题而诞生了,其允许开发者指定整个工程的编译流程,在根据编译平台,生成本地化的Makefile和工程文件,最后用户只需make编译即可。...简而言之,可以把cmake看成一款自动生成 Makefile 的工具,所以编译流程就变成了:cmake—>make–>用户代码–>可执行文件

    96220

    Makfile文件的编写

    Makfile文件的编写 不定期更新 make和Makefile 以下来自百度百科 make: make是一条计算机指令,是在安装有GNU Make的计算机上的可执行指令。...有时make又指GNU Make,GNU Make 是一个用来控制可执行文件和其他一些从源文件来的非源代码文件版本的软件。...命令就是要生成那个目标需要做的动作(任意的shell命令)。...二、声明目目标执行文件的生成方式 这部分是为了生成最终的可执行文件 这部分对应的内容是 main : $(object) gcc -o main $(object) 此部分规定了最终的目标文件的生成规则...三、声明依赖的目标文件生成 这部分是声明所有依赖的文件的生成方式,使用了make的默认生成规则,语法是 目标文件: 依赖的头文件和源文件 这部分对应的内容是 main.o : main.c stack.o

    69930

    Make参数

    —debug[=] 输出make的调试信息。它有几种不同的级别可供选择,如果没有参数,那就是输出最简单的调试信息。下面是的取值:a —— 也就是all,输出所有的调试信息。...输出的信息包括哪个makefile被解析,不需要被重编译的依赖文件(或是依赖目标)等。i —— 也就是implicit,输出所以的隐含规则。...如果生成一个目标失败了,那么依赖于其上的目标就不会被执行了。 -l –load-average[=“—max-load[=] 指定make运行命令的负载。...-o –old-file= –assume-old= 不重新生成的指定的,即使这个目标的依赖文件新于它。...所以你可以在命令行中使用这个参数来让环境变量中的“-k”选项失效。 -t –touch 相当于UNIX的touch命令,只是把目标的修改日期变成最新的,也就是阻止生成目标的命令运行。

    1.6K11
    领券