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

Linux 下的make命令与Makefile

Make的工作原理 当make 命令被执行时,它会扫描当前目录下Makefile或makefile文件找到目标以及其依赖。...makefile之前和之后,都显示工作目录。...于是我们可以使用make命令的下述参数: -n, –just-print, –dry-run, –recon 不执行参数,这些参数只是打印命令,不管目标是否更新,把规则和连带规则下的命令打印出来,但不执行...如果有多个“-C”参数,make的解释是后面的路径以前面的作为相对路径,并以最后的目录作为被指定目录。 如:“make -C ~/fany/test/prog”。...因为make的“隐含规则”功能会自动为我们自动去推导这两个目标的依赖目标和生成命令。make会在自己的“隐含规则”库中寻找可以用的规则,如果找到,那么就会使用。如果找不到,那么就会报错。

10.2K20

Makefile 的使用(在 Linux 中使用 make 命令来编译程序)

命令来编译程序,特别是大程序;而 make 命令所执行的动作依赖于 Makefile 文件。...3.1.3 通用 Makefile 的解析 ① 零星知识点 A. make 命令的使用: 执行 make 命令时,它会去当前目录下查找名为“Makefile”的文件,并根据它的指示去执行操作,生成第一个目标...在 Makefile 中怎么放置第 1 个目标: 执行 make 命令时如果不指定目标,那么它默认是去生成第 1 个目标。 所以“第 1 个目标”,位置很重要。...”的文件,那么执行“make clean”时它就不会执行那些删除命令。...3.4.2 文件名函数 (1)$(dir names…) 抽取names...中每一个文件名的路径部分,文件名的路径部分包括从文件名的首字符到最后一个斜 杠(含斜杠)之前的一切字符。

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

    pwd命令 – 显示当前工作目录的路径

    命令作用:pwd 是一个常用的命令,功能非常简单——显示当前工作目录的绝对路径。绝对路径:是从系统根目录(/)开始的完整路径,而不是相对路径。它包含了从根目录到当前目录的完整信息。2....命令的组成:pwd 是 "print working directory" 的缩写,意思就是“打印工作目录”。...执行结果:当你执行 pwd 命令时,终端会返回一个输出,显示你当前所在的目录的绝对路径。...工作目录的变化:工作目录可以通过不同的命令来改变,比如:cd(Change Directory)命令可以用来切换到其他目录。...在日常的命令行操作中,它经常与其他命令一起使用,帮助你更好地理解自己当前的工作目录。如果你在 Linux 系统中进行文件操作,或者进行系统管理任务,掌握 pwd 是非常基础的技能。

    9910

    makefile从入门到放弃——博主吐血整理的笔记

    Make工程管理器就是个“自动化编译管理器”,这里的“自动”是指它能够根据文件时间戳自动发现更新过的文件而减少编译的工作量,同时,它通过读入Makefile文件的内容来执行大量的编译工作。...执行make命令时会发现提示目标文件已经是最新的了,将不被不执行!如果我想让makefile中某个命令永远被执行。...,但是不执行这些命令 -p 显示make变量数据库的隐含规则 -s 在执行命令时不显示命令 -w 如果执行make在执行过程中改变目录,打印当前目录名 当然makefile也可以像C语言一样调用其他的...所以,当make需要找文件依赖关系时,可以在文件前加上路径,最好的办法就是把一个路径告诉make,让make在自动的去找。...当使用 make 的选项 “-C” 的时候,命令就会进入指定的目录中,然后此变量就会被重新赋值。总之,如果在 Makefile 中没有对此变量进行显式的赋值操作,那么它就表示 make 的工作目录。

    1.7K20

    安装python的visual模块时报错

    检查 了 一些Win32平台......不 检查 了 一些的Mac OSX平台......不 检查 对 Python解释器的版本> = 2.2 ...蟒蛇 检查 的 蟒蛇......在/..... gawk检查是否设置$(MAKE)...是,检查gcc ... gcc,检查C编译器的默认输出文件名... a.out检查C编译器是否工作...是,检查我们是否交叉编译...不检查可执行文件的后缀...检查不截断输出的sed ... / bin / sed检查处理长行的grep和-e ... / bin / grep检查egrep ... / bin / grep -E检查fgrep ... / bin...-fPIC -DPIC检查gcc PIC标志-fPIC -DPIC是否工作...是检查gcc静态标志-static是否工作...是检查gcc是否支持-c -o file.o ...是,检查gcc是否支持...GNU / Linux ld.so检查如何将库路径硬编码到程序中...立即检查是否可以剥离库...是的,请检查libtool是否支持共享库。

    2.3K10

    在window上使用cmake

    makefile,然后进一步执行make来构建程序。...不得不说,cmake的功能很强大,不仅可以生成make的配置文件,还可以生成VS、eclipse的工程文件。但是我在使用时总是碰到很多错误,首先就是cl找不到,用图形化工具时也是找不到。...首先使用MinGW下载MSYS的make工具,然后添加进系统路径,确保在命令行下make可以正常运行 下载cmake,这个可以网络搜索下载,注意添加进系统路径 在工程的根目录下新建 build文件夹,进入这个文件夹...执行 cmake -G (options for generator..) ../ 注意cmake的命令格式,最后的...../表明source在上一级目录 很多博客用的都是 . 表明是当前目录,但是会把生成的文件和源文件混在一起 cmake只是生成makefile,进一步生成可执行文件需要执行make

    1.5K10

    技术栈系列基础篇2-Makefile

    像C 语言有自己的格式、关键字和函数一样。而且在Makefile中可以使用系统shell所提供的任何命令来完成想要的工作。...Makefile带来的好处就是——“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率Makefile里有什么Makefile里包含了:显示规则、隐晦规则、...,是make会自动推导出来的make的工作方式在默认命名的情况下,输入make命令做了什么?...make命令会找当前工作路径下的Makefile 或makefile文件找到文件,会寻找文件中,第一个目标文件(target),参考上面的示例就是”test...check 和test这两个伪目标一般用来测试makefile的流程。常见问题1. @echo,命令不回显@echo,make会把其要执行的命令行在命令执行前输出到屏幕上。

    59130

    Linux 开发 | 学习 Makefile

    工作流程 Make 读取当前目录下命名为 GNUmakefile/Makefile/makefile 或者 -f 直接指定的所有规则文件。...Make 搜寻文件 实际中,比较大的工程文件都会分类放在不同目录下,当 Make 需要寻找文件依赖关系的时候,需要告知去寻找的路径,否则 make 只会查找当前目录。...同运行程序的时候我们给个参数让程序执行特定动作一样,运行 make 时指定伪目标标签,指定执行对应的命令。就如上述例子,执行 make clean 时进行清理工作。...Make 命令中的有几个参数并不往下传递,它们是“-C”,“-f”,“-h”“-o”和“-W” 嵌套执行中, “-w”或是“--print-directory”会在 Make 的过程中让你看到目前的工作目录...) # 返回绝对路径, 不包含 . 或者 .. # 如果文件不存在,返回空 $(abspath names ...) # 返回绝对路径, 不包含 . 或者 ..

    5.4K10

    Makefile教程

    4.make的工作流程 执行Makefile时,在默认的方式下,我们只输入make命令,则相当于make first_objname_in_Makefile,意思是生成出现在Makefile中第一个目标文件...这就是整个make的依赖性,make会一层又一层地去找文件的依赖关系,直到最终编译出第一个目标文件。在找寻的过程中,如果出现错误,比如最后被依赖的文件找不到,那么make就会直接退出。.../lib/libxmlextern.a 此处表示Makefile需要生成的第一个目标文件,也就是不指明目标文件的make命令默认生成的目标文件。...,但需要修改Makefile的环境变量VPATH让make自动寻找依赖项所在路径。.../src //指定.cpp类型文件的搜索路径是src 7.4Makefile中shell命令前加@字符 make执行的命令前面加了@字符,则不显示命令本身而只显示它的结果。

    4.1K53

    【linux命令讲解大全】107.pwd 命令:显示当前工作目录的绝对路径

    pwd 显示当前工作目录的绝对路径。 补充说明 pwd(英文全拼:print working directory)命令用于显示用户当前所在的工作目录(以绝对路径显示)。...内建命令 概要 pwd [-LP] 选项 -L(默认值): 打印环境变量$PWD的值,可能为符号链接。 -P: 打印当前工作目录的物理位置。...注意 该命令是bash内建命令,相关的帮助信息请查看help命令。 外部命令 概要 pwd [OPTION]... 主要用途 显示当前工作目录。...启动或关闭内建命令请查看enable命令,关于同名优先级的问题请查看builtin命令的例子部分的相关讨论。...例子 查看当前所在路径 [root@localhost var]# pwd /var 显示软连接文件最终指向的文件路径 [root@localhost ~]# cd /var/ # 进入/var目录

    54010

    【Linux】项目自动化构建工具-makeMakefile 详解

    什么是make和Makefile? make 是一种控制程序生成的工具,它读取一个名为Makefile(或makefile,不区分大小写)的文件,并根据文件中的指令执行相应的命令。...,我们每次重新生成可执行程序时,所需输入的gcc指令的长度与个数也会随之增加,所以这时我们就需要使用make和Makefile了,这将大大减少我们的工作量),Makefile内容如下: ✨✨这里hello...此外在Makefile中clean是一个用.PHONY声明伪目标(不生成文件),用于清理构建过程中产生的文件,我们直接使用make clean指令即可删除对应的文件: .PHONY:clean clean...make clean但是创建hello文件时只需要写make即可,这是因为如果只输入make命令,make会在当前目录下找名字叫“Makefile”或“makefile”的文件,如果找到,它会找文件中的第一个目标文件...(target),在上面的例子中,他会找到“hello”这个文件,然后执行生成它的Shell命令,所以make后面的hello可以省略,只写一个make命令即可; 如果找寻的过程中,如果出现错误,比如最后被依赖的文件找不到

    30110

    Linux项目自动化构建工具-makemakefile

    makefile带来的好处就是–”自动化编译“,只要预先写好makefile,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。...make是一个命令工具,是一个解释makefile中指令的命令工具,一般来说,大多数的IDE都有这个命令,比如:Delphi的make。...4. make的原理 make是如何工作的呢?...在寻找过程中,如果重新错误,比如最后被依赖的文件找不到,那么make就会自己退出,并报错,而对于所定义的命令的错误,或者编译不成功,make完全不管。...make只管文件的依赖性,即在我找到依赖关系后,冒号后面的文件还是没有,那么make就会停止工作。 5.项目清理 工程项目也是需要被清理的。

    8210

    【Linux系统编程】Linux项目自动化构建工具——makeMakefile

    也就是说,想完成项目的自动化构建,我们需要两个东西 一个是make,它是一条指令,那我们到时候可以直接用,另一个是makefile,它是一个文件,这个文件由我们自己创建,一般就直接创建在当前源代码所在路径下...3.3 make 的工作原理 接下来我把上面写的Makefile修改一下: 大家想一下,如果我们想生成可执行文件,除了可以依赖源文件myfile.c之外,还可以依赖什么?...我们可以看一下: 执行make之后显示的其实就是执行的顺序 make是如何工作的,在默认的方式下,也就是我们只输入make命令。...在找寻的过程中,如果出现错误,比如最后被依赖的文件找不到,那么make就会直接退出,并报错,而对于所定义的命令的错误,或是编译不成功,make根本不理。...还是以这个为例 大家看 我两次执行make(不指定默认是第一个即make myfile),有什么不同。 第一次make执行了makefile文件中的第一个目标规则,并生成了对应的文件。

    31110

    linux下源码安装

    /configure生成config.h  configure.h使用autoconf和automake命令的shell脚本,可以通过autoscan自动生成或手写  acconfig.h包含了configure.in...(GNU m4宏处理器处理*.m4宏文件) ####2.编译 gcc找不到头文件: sudo find /(目录) -name 文件 makefile的一般格式:目标:依赖 命令  例如:a.c...=':(已被赋值的变量不赋值) '+=':(追加赋值,**makefile变量值都是字符串**) 变量引用:$(变量) makefile条件选择: ifeq 'arg1' 'arg2'或ifeq (.../archives/0421949.html ####3.安装  生成的可执行文件安装,用make install,安装文件到usr/bin下   (卸载使用make uninstall,清理make...;桌面系统如:centos、ubuntu  linux软件包分为两大阵营:RPM和DPKG,与bin安装和源码安装相比,管理包工具使用数据库方式管理软件包和包的依赖项,安装路径系统默认   RPM(

    7K41

    自动化构建-makeMakefile 【Linux基础开发工具】

    • make是一个命令工具,是一个解释makefile中指令的命令工具,一般来说,大多数的IDE都有这个命令,比如:Delphi的make,Visual C++的nmake,Linux下GNU的make...二、Makefile编译过程 Makefile文件中的命令有一定规范,一旦该文件编写好以后在Linux命令行中执行一条make命令即可自动编译整个工程。...是如何工作的,在默认的方式下,也就是我们只输入make命令。...在找寻的过程中,如果出现错误,比如最后被依赖的文件找不到,那么make就会直接退出,并报错,而对于所定义的命令的错误,或是编译不成功,make根本不理。...make只管文件的依赖性,即,如果在我找了依赖关系之后,冒号后面的文件还是不在,那么对不起,我就不工作啦。

    12610

    全网最牛Linux内核Makefile系统文件详解(纯文字代码)

    三、make是如何工作的 在默认的方式下,也就是我们只输入make命令。那么, 1、make会在当前目录下找名字叫“Makefile”或“makefile”的文件。...在找寻的过程中,如果出现错误,比如最后被依赖的文件找不到,那么make就会直接退出,并报错,而对于所定义的命令的错误,或是编译不成功,make根本不理。...五、make的工作方式 GNU的make工作时的执行步骤入下:(想来其它的make也是类似) 1、读入所有的Makefile。 2、读入被include的其它Makefile。...所以,当make需要去找寻文件的依赖关系时,你可以在文件前加上路径,但最好的方法是把一个路径告诉make,让make在自动去找。...如果你指定了UNIX风格的目录形式,首先,make会在SHELL 所指定的路径中找寻命令解释器,如果找不到,其会在当前盘符中的当前目录中寻找,如果再找不到,其会在PATH环境变量中所定义的所有路径中寻找

    3.3K20

    vscode基于Linux和Windows下cc++的多文件编译与连接

    前些天在配置Linux上的vscode的时候,突然发现有网友在tasks.json中的command是make,突然来了兴致,想到既然用make,那我只要一个makefile,然后Ctrl+Shift+...但最终make命令执行失败,说是找不到target什么的(忘了),但我不甘心,于是又是百度又是google,搜索了差不多两个小时都没有找到有效的解决方法。...看到shell命令也可以的时候感觉要吐血了,感觉我浪费了宝贵的两个小时,明明用shell脚本就变得很简单了,有多简单?看图 tasks.json ? .make.sh ?...i bash --login -i -c "make -f %_makefile%" ::运行编译脚本MakeFile ::make 最后顺便贴一下我的makefile和launch.json吧 Linux..."miDebuggerPath":"D:/MinGW32/mingw32/bin/gdb.exe", // miDebugger的路径,注意这里要与MinGw的路径对应 "args": ["blackkitty

    3K70
    领券