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

如何在Makefile中定义几个包含路径

在Makefile中定义几个包含路径可以通过使用变量和特殊的Makefile规则来实现。以下是一个示例:

  1. 首先,定义一个变量来存储包含路径。可以使用INCLUDES作为变量名,将包含路径以空格分隔的形式赋值给它。例如:
代码语言:txt
复制
INCLUDES = -I/path/to/include1 -I/path/to/include2
  1. 接下来,在Makefile规则中使用$(INCLUDES)来引用这些包含路径。例如,如果你有一个名为main.c的源文件需要编译,可以在编译规则中使用$(INCLUDES)来指定包含路径。示例如下:
代码语言:txt
复制
main.o: main.c
    gcc -c $(INCLUDES) $< -o $@

在上述示例中,$<表示目标的依赖文件,$@表示目标文件。

  1. 如果你有多个目标需要使用相同的包含路径,可以将其定义为一个公共的变量,然后在各个目标的编译规则中使用该变量。例如:
代码语言:txt
复制
INCLUDES = -I/path/to/include1 -I/path/to/include2

main.o: main.c
    gcc -c $(INCLUDES) $< -o $@

utils.o: utils.c
    gcc -c $(INCLUDES) $< -o $@

在上述示例中,main.outils.o都使用了相同的包含路径。

通过以上步骤,你可以在Makefile中定义并使用多个包含路径来编译你的源代码。记得根据实际情况修改路径和文件名。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

什么是makefile(3)

Makefile里主要包含了五个东西:显式规则、隐晦规则、变量定义、文件指示和注释。 1、显式规则。显式规则说明了,如何生成一个或多的的目标文件。...如果你要在你的Makefile中使用“#”字符,可以用反斜框进行转义,:“\#”。 最后,还值得一提的是,在Makefile的命令,必须要以[Tab]键开始。...举个例子,你有这样几个Makefile:a.mk、b.mk、c.mk,还有一个文件叫foo.make,以及一个变量$(bar),其包含了e.mk和f.mk,那么,下面的语句: include...如果文件都没有指定绝对路径或是相对路径的话,make会在当前目录下首先寻找,如果当前目录下没有找到,那么,make还会在下面的几个目录下找: 1、如果make执行时,有“-I”或“--include-dir...这个变量的值是其它的Makefile,用空格分隔。只是,它和include不同的是,从这个环境变引入的Makefile的“目标”不会起作用,如果环境变量定义的文件发现错误,make也会不理。

57020

利用开源工具TempestSDR实现屏显内容远程窃取

编译过程大概包含以下几个步骤: 1. 由于ExtIO接口只支持32位JRE,所以需要安装32位版本的JRE运行环境和JDK; 2....编译时,如果出现CC命令的未知错误,可以在所有makefiles文件顶部添加“CC=gcc”,当然,我也会从JavaGUI makefile删除Mirics编译线,因为我们不使用其软件定义无线电sdr...原本JDK文件夹位于Program Files目录下,但makefile不支持文件夹的空格格式且会出现错误,所以把其移动到另一个名字没有空格的文件夹后,能成功编译运行; 5....TempestSDR程序运行和实验效果 经过测试编译,我们形成了一个可运行程序,为了其他人的研究之便,我们把它上传到了github开源项目中,其中包含makefile和一个不需要编译即可fhru使用的...另外,在至少一台Win 10主机系统上,我们还手动把“Prefs”文件夹添加到了注册表的Java路径

1.9K50
  • Makefile教程

    1.Makefile简介 Makefile定义了软件开发过程,项目工程编译链、链接的方法和规则。 由IDE自动生成或者开发者手动书写。...3.Makefile内容 Makefile里主要包含了五个东西:显式规则、隐晦规则、变量定义、文件指示和注释。 1.显式规则。显式规则说明了,如何生成一个或多个的目标文件。...大家也可以举一反三,给出自己的Makefile模板。 7.相关知识点 7.1Makefile目标文件一定要把依赖的头文件包含进去吗? 不一定,可以不包含进去。...我们的原则是,自己定义的头文件写入依赖项,库的头文件无需包含,除非你要修改库的头文件。...7.12makfileinclude、-include与sinclude的区别 include:包含其它Makefile至当前Makefile,作用类似于C/C++的#include预处理指令。

    4K53

    跟我一起写Makefile:MakeFile介绍

    Makefile里主要包含了五个东西:显式规则、隐晦规则、变量定义、文件指示和注释。 显式规则。显式规则说明了,如何生成一个或多个目标文件。...如果你要在你的Makefile中使用“#”字符,可以用反斜杠进行转义,:“\#”。 最后,还值得一提的是,在Makefile的命令,必须要以[Tab]键开始。...include的语法是: include ; filename可以是当前操作系统Shell的文件模式(可以包含路径和通配符) 在include前面可以有一些空字符,但是绝不能是[Tab...举个例子,你有这样几个Makefile:a.mk、b.mk、c.mk,还有一个文件叫foo.make,以及一个变量$(bar),其包含了 e.mk和f.mk,那么,下面的语句: include foo.make...如果文件都没有指定绝对路径或是相对路径的话,make会在当前目录下首先寻找,如果当前目录下没有找到,那么,make还会在下面的几个目录下找: 如果make执行时,有“-I”或“--include-dir

    99620

    跟我一起写Makefile

    Makefile里主要包含了五个东西:显式规则、隐晦规则、变量定义、文件指示和注释。 显式规则。显式规则说明了,如何生成一个或多个目标文件。...如果你要在你的Makefile中使用“#”字符,可以用反斜杠进行转义,:“\#”。 最后,还值得一提的是,在Makefile的命令,必须要以[Tab]键开始。...include的语法是: include ; filename可以是当前操作系统Shell的文件模式(可以包含路径和通配符) 在include前面可以有一些空字符,但是绝不能是[...举个例子,你有这样几个Makefile:a.mk、b.mk、c.mk,还有一个文件叫foo.make,以及一个变量$(bar),其包含了 e.mk和f.mk,那么,下面的语句: include foo.make...如果文件都没有指定绝对路径或是相对路径的话,make会在当前目录下首先寻找,如果当前目录下没有找到,那么,make还会在下面的几个目录下找: 如果make执行时,有“-I”或“--include-dir

    1.1K70

    g++,CMake和Makefile了解一下

    和空格之后直接把文件拖进去,系统会自动添加文件路径。...的命令必须以 [tab] 开头 2.3 Makefile语法 Makefile包含了五个重要的东西:显示规则、隐晦规则、变量定义、文件指示和注释。...一条规则可以包含多个target,这意味着其中每个target的prerequisite都是相同的。当其中的一个target被修改后,整个规则的其他target文件都会被重新编译或执行。 2....变量的定义Makefile定义的变量,一般是字符串 4. 文件指示: Makefile引用其他Makefile;指定Makefile中有效部分;定义一个多行命令 5....3.2 CMake编译流程 成功安装好CMake后我们再来说说如何在linux平台下使用CMake生成Makefile并编译的流程,如下: 1.编写CMake配置文件CMakeLists.txt,我们可以认为

    1.6K20

    makefile

    注:个人学习所记,仅供参考 实验七:Makefile实验 实验原理 在Linux或Unix环境下,对于只含有几个源代码文件的小程序(hello.c)的编译,可以手工键入gcc命令对源代码文件逐个进行编译...2、Makefile的基本内容 Makefile一般包括包含:显式规则、变量定义、隐含规则、文件指示和注释等五个内容。 (1)显式规则:显式规则说明如何生成一个或多个的目标文件。...(5)注释:Makefile只有行注释,和UNIX的Shell脚本一样,其注释是用“#”字符,如果你要在你的Makefile中使用“#”字符,可以用反斜杠进行转义,:“\#”。...例如:有这样几个Makefile:a.mk、b.mk、c.mk,还有一个文件叫foo.make,以及一个变量$(bar),其包含了e.mk和f.mk,那么,下面的语句: include foo.make...如果文件都没有指定绝对路径或是相对路径的话,make首先会在当前目录下寻找,如果当前目录下没有找到,那么,make还会在下面的几个目录下找: (1)如果make执行时,有“-I”或“--include-dir

    2K00

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

    三、引用其它的MakefileMakefile使用include关键字可以把别的Makefile包含进来,这很像C语言的#include,被包含的文件会原模原样的放在当前文件的包含位置。...举个例子,你有这样几个Makefile:a.mk、b.mk、c.mk,还有一个文件叫foo.make,以及一个变量$(bar),其包含了e.mk和f.mk,那么,下面的语句: include foo.make...如果文件都没有指定绝对路径或是相对路径的话, make会在当前目录下首先寻找,如果当前目录下没有找到,那么,make还会在下面的几个目录下找: 1、如果make执行时,有“-I”或“--include-dir...如果你指定了UNIX风格的目录形式,首先,make会在SHELL 所指定的路径找寻命令解释器,如果找不到,其会在当前盘符的当前目录寻找,如果再找不到,其会在PATH环境变量中所定义的所有路径寻找...另外一种变量替换的技术是以“静态模式”(参见前面章节)定义的,: foo := a.o b.o c.o bar := $(foo:%.o=%.c) 这依赖于被替换字串的有相同的模式,模式必须包含一个

    3.2K20

    qtqmake的详解

    一般顺序是先创建.pro文件,然后由.pro文件生成Makefile文件,makefile文件保存了编译器和连接器的参数选项,还表述了所有源文件之间的关系(源代码文件需要的特定的包含文件,可执行文件要求包含的目标文件模...DEFINES – 程序编译时候需要的预定义的列表INCLUDEPATH –程序需要的头文件的目录列表. DEPENDPATH –程序搜索的依赖路径....VERSION – 目标库的版本号, 2.3.1 编译成一个插件 插件的编译是使用lib模板,正如上面所描述的那样,这告诉 qmake生成的Makefile是将要编译成为每个平台都适当的形式的插件....通常是库的形式,跟普通的库一样VERSION 变量是用来指定一些有关插件的信息 VERSION – 目标库的版本号, 2.3.1 声明Qt库模块 如果CONFIG变量包含了...可以用类似的方法来指定头文件的路径,不过是使用INCLUDEPATH变量,如下面可能添加好几个头文件的路径 INCLUDEPATH = c:/msdev/include

    2.6K40

    Linux 开发 | 学习 Makefile

    基本例子 ,要输出 edit, 需要先编译 main.o...等文件。 recipe : 执行的命令。...自动生成依赖关系 如果在 main.c 包含了 defs.h 文件,那么依赖关系上我们需要写上 defs.h,这样,当 defs.h 文件修改了(比如新定义了一个宏..)...---- Makefile 的变量 Makefile 的变量,就如程序的宏定义,代表一个字串,在使用的地方展开,通过 $(variable) 表示变量的内容,和 shell 类似。...) # 返回绝对路径, 不包含 . 或者 .. # 如果文件不存在,返回空 $(abspath names ...) # 返回绝对路径, 不包含 . 或者 .....自定义函数 当make执行这个函数时,variable参数的变量,$(1),$(2),$(3)等,会被参 数 parm1, parm2,parm3 依次取代。

    5.4K10

    使用Python在自定义数据集上训练YOLO进行目标检测

    此外,我们还将看到如何在定义数据集上训练它,以便你可以将其适应你的数据。 Darknet 我们认为没有比你可以在他们的网站链接中找到的定义更好地描述Darknet了。...因此,在每次编译时都去重新编写g++等命令将会非常费力… 那么我们要做的是创建一个makefile,它已经包含了这个命令,并且我们所需要做的就是运行makefile来编译代码。...makefile通常包含用户可以根据需要设置的配置变量。 话虽如此,我们要做的是设置Darknet makefile的一些变量。确保你有一个可用的GPU,并运行以下单元格。...我们在上一个单元格设置的配置允许我们在GPU上启动YOLO,而不是在CPU上。现在我们将使用make命令来启动makefile。...首先,你需要打开darknet/data/obj.names路径下的文件,其中你将写入你的标签。 在Colab,我们可以使用魔术命令直接在一个单元格写入文件。

    39310

    Linux makefile 教程 非常详细,且易懂

    举个例子,你有这样几个Makefile:a.mk、b.mk、c.mk,还有一个文件叫foo.make,以及一个变量$(bar),其包含了e.mk和f.mk,那么,下面的语句: include foo.make...如果文件都没有指定绝对路径或是相对路径的话,make会在当前目录下首先寻找,如果当前目录下没有找到,那么,make还会在下面的几个目录下找: 1、如果make执行时,有“-I”或“–include-dir...如果你指定了UNIX风格的目录形式,首先,make会在SHELL所指定的路径找寻命令解释器,如果找不到,其会在当前盘符的当前目录寻找,如果再找不到,其会在PATH环境变量中所定义的所有路径寻找。...要达到这一目的很简单,需在make命令后直接跟目标的名字就可以完成(如前面提到的“make clean”形式) 任何在makefile的目标都可以被指定成终极目标,但是除了以“-”打头,或是包含了“=...1、模式规则介绍 模式规则,至少在规则的目标定义包含”%”,否则,就是一般的规则。目标的”%”定义表示对文件名的匹配,”%”表示长度任意的非空字符串。

    4.3K20

    Makefile经典教程(掌握这些足够)

    举个例子,你有这样几个Makefile:a.mk、b.mk、c.mk,还有一个文件叫foo.make,以及一个变量$(bar),其包含了e.mk和f.mk,那么,下面的语句:    include foo.make...如果文件都没有指定绝对路径或是相对路径的话,make会在当前目录下首先寻找,如果当前目录下没有找到,那么,make还会在下面的几个目录下找: 1.如果make执行时,有“-I”或“--include-dir...如果你指定了UNIX风格的目录形式,首先,make会在SHELL所指定的路径找寻命令解释器,如果找不到,其会在当前盘符的当前目录寻找,如果再找不到,其会在PATH环境变量中所定义的所有路径寻找。...要达到这一目的很简单,需在make命令后直接跟目标的名字就可以完成(如前面提到的“make clean”形式)任何在makefile的目标都可以被指定成终极目标,但是除了以“- ”打头,或是包含了“=...1、模式规则介绍 模式规则,至少在规则的目标定义包含"%",否则,就是一般的规则。目标的"%"定义表示对文件名的匹配,"%"表示长度任意的非空字符串。

    2.7K20

    翻译qmake文档(三) Creating Project Files

    在简单的项目里,这些变量通知qmake使用相关的配置信息,或者提供文件名和路径在构建过程使用。      qmake在每个项目文件查找某些变量,并使用这些内容用于确定什么要写到 makefile里。...指定变量包含空格,你必需用双引号包围变量 DEST = "Program Files" 引号文本被视为一个单独的值保存在变量里。...类似的方法用来处理包含空格的路径,特别是在windows平台定义INCLUDEPATH和LIBS变量时: win32:INCLUDEPATH += "C:/mylibs/extra headers" unix...D-Bus和ogg库。...例如,下边的代码显示如何指定库: LIBS += -L/user/local/lib -lmath 包含头文件的路径也可以使用相同的方式添加到 INCLUDEPATH 变量 例如,添加几个用于查找头文件的路径

    94460

    Hello Qt——QMake用户指南

    工程文件信息会被qmake用于生成包含构建过程中所需的所有命令的MakeFile。工程文件通常包含一系列头文件和源文件,通用配置信息以及音乐程序指定的细节,应用程序的链接库、搜索路径。...工程文件包含一定数量的不同元素,注释、变量声明、内置函数以及简单的控制结构。在大多数简单的工程,只需要声明使用简单配置选项构建工程的源文件和头文件即可。...下面是如何在工程文件定义唯一标识符。 支持IDS的可用类型有四种:UID2、UID3、SID和VID。...某些变量用于声明资源,每个平台中通用的头文件、源文件,其它变量用于定义指定平台中的编译器和链接器的行为。 平台特定变量遵循变量扩展或修改的命名模式,但在其名称包含相关平台的名称。...OUT_PWD 本变量包含指向生成MakeFile文件的目录的全路径 QMAKE 本变量包含qmake程序自己的名字,会放在生成的MakeFile文件

    6.1K20

    Android.mk语法解释前言原文

    它用来定位要编译的源代码在代码树的位置。在本例,宏函数“my-dir”是由编译系统提供的,用来返回当前目录的路径(也就是包含此Android.mk文件的目录)。...this-makefile 返回当前MakeFile路径(这个函数是在哪个MakeFile调用的) parent-makefile 返回父MakeFile路径,也就是包含当前调用这个函数的MakeFile...,也可以使用绝对路径: LOCAL_SRC_FILES := /home/user/mysources/foo.c 必要,请尽量不要使用绝对路径,会导致兼容性问题,可移植性会变差。...而如果你只想让模块几个源文件的代码编译成支持NEON指令集,而其它的不要支持NEON指令集,可以将那些需要支持NEON指令集的源码文件的名字后面加上“.neon”后缀。...还是用前面的例子,如果在“bar.c”,要包含模块“foo”的头文件,有两种做法: 1)可以在“bar”模块定义LOCAL_C_INCLUDES变量,将“foo”模块的路径赋值给它; 2)可以在

    1.4K41

    Linux 下的make命令与Makefile

    6 保留说有的#pragma编译器指令 经过预编译的.i文件,不包含任何宏定义,并且所包含的文件也被插入进来。...要达到这一目的很简单,需在make命令后直接跟目标的名字就可以完成(如前面提到的“make hello_kitty”形式)任何在makefile的目标都可以被指定成终极目标,甚至没有被我们明确写出来的目标也可以成为...-C , –directory= 指定读取makefile的目录。如果有多个“-C”参数,make的解释是后面的路径以前面的作为相对路径,并以最后的目录作为被指定目录。...j: 也就是jobs,输出执行规则命令的详细信息,命令的PID、返回码等。 m: 也就是makefile,输出make读取makefile,更新makefile,执行makefile的信息。...模式规则介绍 模式规则,至少在规则的目标定义包含%,否则,就是一般的规则。目标的% 定义表示对文件名的匹配,%表示长度任意的非空字符串。

    10.2K20

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

    一个工程的源文件不计其数,并且按类型、功能、模块分别放在若干个目录makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作...可以在makefile目标前加上.PHONY:'目标名' makefile变量 在makefile定义的变量,就像是C/C++语言中的宏一样,他代表了一个文本字串,在Makefile执行的时候其会自动原模原样地展开在所使用的地方....o test 第二行代码中就是应用了规则二,目标文件可以改成f2、main都可以,但是必须是和所依赖的文件相关联,如果不关联(:test)那么makefile就会报错。...makefile的VPATH VPATH:虚路径 在一些大的工程,有大量的源文件,我们通常的做法是把许多的源文件分类,并且存放在不同的目录下。...make 命令中有几个参数选项并不传递,它们是:”-C”、”-f”、”-o”、”-h” 和 “-W”。

    1.7K20
    领券