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

可以使用从源文件读取的值来分配makefile变量吗?

是的,可以使用从源文件读取的值来分配makefile变量。在makefile中,可以使用include指令来包含一个源文件,并将该文件中定义的变量引入到makefile中。通过这种方式,可以将源文件中的值赋给makefile中的变量。

下面是一个示例:

假设有一个名为config.mk的源文件,内容如下:

代码语言:txt
复制
VAR1 = value1
VAR2 = value2

在makefile中,可以使用include指令来引入该文件,并将其中的变量赋值给makefile中的变量:

代码语言:txt
复制
include config.mk

target:
    @echo VAR1 is $(VAR1)
    @echo VAR2 is $(VAR2)

在这个示例中,include指令将config.mk文件包含到makefile中。然后,makefile中的target规则使用了VAR1和VAR2这两个变量,并打印出它们的值。

这样,当执行make命令时,makefile会读取config.mk文件中的值,并将其赋给相应的变量。输出结果将显示VAR1的值为value1,VAR2的值为value2。

推荐的腾讯云相关产品:腾讯云云服务器(CVM),产品介绍链接地址:https://cloud.tencent.com/product/cvm

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

相关·内容

Makefile教程

6.多源文件目录的简单模板 通过上面简单示例可以大致了解Makefile的基本编写方法与内容,实际上,Makefile可以通过make自动推导特性、内置变量、自动化变量和函数等编写地更加简洁优雅,并且可以模板化...其实可以让编译器自动推导源文件使用了哪些头文件,这样我们就可以将源文件使用的头文件添加到目标obj文件的依赖项中,读者可参考网上的资料,自行给出实现。...大家也可以举一反三,给出自己的Makefile模板。 7.相关知识点 7.1Makefile中目标文件一定要把依赖的头文件包含进去吗? 不一定,可以不包含进去。...(4)Makefile中对一些简单变量的引用,可以不使用”()”和”{}”来标记变量名,而直接使用$x的格式来实现,此种用法仅限于变量名为单字符的情况。另外自动化变量也使用这种格式。...7.10如何使用shell脚本给Makefile变量赋值 Makefile可以内嵌shell脚本,但是在内嵌的shell脚本只能读取Makefile的变量,如何给Makefile变量赋值呢?

4.1K53

【makefile】

如果只希望利用gcc命令来生成test.o目标文件,这时,就可以利用如下的makefile来定义test.o的创建规则: #This makefile just is a example....(2)变量定义:在Makefile中可以定义一系列的变量,变量一般都是字符串,当Makefile被执行时,变量的值会被扩展到相应的引用位置上。...Makefile中的变量可以使用在“目标”,“依赖目标”,“命令”或Makefile的其它部分中。...2.4 Makefile中的函数 在Makefile中可以使用函数来处理变量,从而让命令或规则更为的灵活和具有智能,函数调用,很像变量的使用,也是以“$”来标识的,函数调用后,函数的返回值可以当做变量来使用...其按顺序找这三个文件,一旦找到,就开始读取这个文件并执行,也可以给make命令指定一个特殊名字的Makefile,要求使用make的“-f”参数,例如:make -f Hello.makefile.

2K00
  • qt中qmake的详解

    console     App模板专用: 程序是Window平台控制台程序 当你使用这个模板,以下的一些qmake变量是能用的,你可以在pro文件使用这些变量来配置你的应用程序需要的相关的信息 HEADERS...文件使用这些来制定一些库的库的信息 使用这个模板的时候,下面的选项可以添加到 CONFIG 变量里面来决定编译成何种库 选项        描述 dll        编译成动态库 (dll or...qt这个值,表明qmake支持了qt的程序,但是还需要调整一些你程序中使用的qt 的模块.这是使用QT变量,就能达到这个目的。...·d 列出qmake的调试信息 由于工程需要在每个目标平台上进行不同的编译,并有很多子目录, 你可以在运行qmake的时候使用下面的选项来设置相应的指定平台的变量。...我们可以使用下面的选项来重写或者覆盖: ·t tmpl qmake将会用tmpl来重写TEMPLATE变量的任何设置, 但只在pro文件被处理之后。

    2.7K40

    【Linux】自动化构建工具-makeMakefile

    前言 在上一篇中已经了解了【Linux】编译器-gcc/g++使用,这次来一起看看make/Makefile。 2....make程序会读取makefile文件中的数据,然后根据规则调用编译器,汇编器,链接器产生最后的输出。 Makefile里主要包含了五个东西:显式规则、隐晦规则、变量定义、文件指示和注释。...make有自动推导的功能,所以隐晦的规则可以让我们比较粗糙地简略地书写makefile,比如源文件与目标文件之间的时间关系判断之类 在makefile中可以定义变量,当makefile被执行时,其中的变量都会被扩展到相应的引用位置上...,通常使用 $(var) 表示引用变量文件指示。...这里源文件没有更新,就不能再编译: 来修改一下test.c的Modify时间: touch test.c make一下就又可以编了: 4. makefile内置符号 $:相当于取内容。

    13910

    深度刨析makefile

    而且在 makefile 中可以使用 shell 的命令来完成某些工作,也就是说 makefile 中可以使用 shell 命令,比如说,编译完成后删除所有的中间文件,可以使用 rm -f *.o 这样的...在打印结果中,A 还是第一次赋值时的值 += 追加赋值,在变量后面追加一个值,用空格与前面的值分隔开 可以看到,A 和 B 的值都会受影响 ② 变量的使用 变量在使用的时候要在前面加一个 $ 符号...③ 变量的替换 我们可以对变量的值进行替换,主要有如下两种方法 (2)自动化变量与模式变量 ① 自动化变量 自动化变量是指 makefile 根据模式规则自动推导的变量,这类变量只能在命令中使用。...隐含规则会使用系统变量,我们可以通过系统变量来改变隐含规则运行时的参数,比如系统变量 CFLAGS 可以控制编译器的参数等。另外,我们还可以通过模式规则来写自己的隐含规则或使用后缀规则来保证兼容性。...(.texi)到 Info 文件程序,默认命令是 makeinfo TEX 从 TeX 源文件创建 TeX DVI 文件的程序,默认命令是 tex TEXI2DVI 从 Texinfo 源文件创建军 TeX

    13210

    【Linux】--- Linux编译器-gccg++、调试器-gdb、项目自动化构建工具-makeMakefile 使用

    安装后的编译器默认的版本是较低的,我们可以使用选项-std=c99(即使用c99标准),-std=c++11(即使用c++11的标准)来进行版本提升。使用-o选项,可以将编译生成的可执行重命名。...用户可以使用"-S"选项来进行查看,该选项的作用是让gcc从现在开始进行程序的翻译,编译完成就停下! 可以从test.c开始编译,也可以从test.i开始。...print(): 打印表达式的值,通过表达式可以修改变量的值或者调用函数。 p 变量: 打印变量值。 set var: 修改变量的值。...make程序会读取makefile文件中的数据,然后根据规则调用编译器,汇编器,链接器产生最后的输出。 Makefile里主要包含了五个东西:显式规则、隐晦规则、变量定义、文件指示和注释。1....在makefile中可以定义变量,当makefile被执行时,其中的变量都会被扩展到相应的引用位置上。4. 通常使用 $(var) 表示引用变量文件指示。

    43220

    CMake vs Make对比

    有关系吗?可以互换吗? 事实证明,它们是完全不同的。了解他们之间的区别是非常重要的,以确保您不会陷入困境。在分析之前,先看看它们是什么。...“Make”是从程序的源文件中控制程序的可执行文件和其他非源文件的生成工具。 “Make”工具需要知道如何构建程序。它了解如何从名为“makefile”的文件构建程序。...这个makefile列出了每个非源文件以及如何从其他文件中计算它。编写程序时,应该为其编写一个makefile,以便可以使用“Make”来构建和安装程序。简单的东西!...您还可以使用“Make”来控制安装或卸载软件包,为其生成标签表, CMake的 CMake代表跨平台制作。CMake识别哪个编译器用于给定类型的源。...如果您不知道,您不能使用相同的编译器来构建所有不同类型的源。您可以在每次建立项目时手动执行,但这将是乏味和痛苦的。CMake为每种类型的目标调用正确的命令序列。

    4.1K31

    Hello Qt——QMake用户指南

    例如,HEADERS和SOURCES变量的列表值会告诉qmake相关的头文件和源文件(工程文件所在目录)。 变量可以用于存储临时的列表值,覆写存在的列表值或是扩展新的值。...在上述代码中,当工程文件被处理时,PWD的值会被立即读取,但$(PWD)会在生成的MakeFile文件中被赋值给DESTDIR变量。...2、替换函数 qmake提供了在配置过程中处理变量内容的函数。这些函数称为替换函数。通常,替换函数返回可以赋值给其它变量的值。可以通过在函数名称前使用$$操作符来获取这些值。...prompt(question) 显示指定的question,返回一个从stdin读取的值。 quote(string) 将整个string转换为单个实体,返回结果。...在string字符串中可以使用定义和赋值来修改现有变量的值或创建新的定义。

    6.4K20

    Linux 下的make命令与Makefile

    利用make工具,我们可以将大型的开发项目分解成为多个更易于管理的模块,一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,...或者使用gcc 命令从c源文件直接生成目标文件 gcc -c hello_kitty.c -o hello_kitty.o 链接 将库文件与目标文件链接成可执行文件的过程。...一般是是源文件(或依赖文件),Make会根据规则推导来运行依赖于这个文件的命令,一般来说,可以和“-n”参数一同使用,来查看这个依赖文件所发生的规则命令。...“隐含规则”会使用一些我们系统变量,我们可以改变这些系统变量的值来定制隐含规则的运行时的参数。如系统变量CFLAGS 可以控制编译时的编译器参数。我们还可以通过“模式规则”的方式写下自己的隐含规则。...你可以在你的makefile中改变这些变量的值,或是在make的命令行中传入这些值,或是在你的环境变量中设置这些值,无论怎么样,只要设置了这些特定的变量,那么其就会对隐含规则起作用。

    10.2K20

    【Linux必备工具】自动化构建工具makefile的使用详解

    它用于定义项目中的各个源文件如何编译链接,可以极大地提高开发效率。 Makefile 带来的好处就是——“自动化编译"。...注:make默认执行的是第一行的命令,一般把清理工作放在最后面 2.2.5 其他 注释:使用 # 符号来添加注释,注释从 # 开始一直到该行的末尾。...变量:可以使用变量来存储命令选项、编译器名称等信息,然后在规则中引用这些变量。...语法格式:VAR_NAME = value 取消回显:由于调用make命令,其会默认显示回显,因此一般通过使用 @ 加在命令前面取消回显 条件判断:可以使用条件判断(ifeq、ifdef 等)来根据不同的条件执行不同的命令...此外:Makefile中可以编写变量,表达式之间不建议带空格 通过 $(变量名) 来引用变量的值。

    22410

    6_Makefile与GCC

    6.4.3 Makefile的规则 6.4.3.1 命名规则: ​ 一般来说将Makefile命名为Makefile或makefile都可以,当很多源文件的名字是小些,所以一般使用Makefile。...通过命令“make print”执行Makefile,如下: $ make print ask ​ 从结果上看,变量CURPARA的值并不是“100”。其值为PARA最后一次赋值的值。...说明,赋值符“=”,可以借助另外一个变量,可以将变量的真实值推到后面去定义。也就是变量的真实值取决于它所引用的变量的最后一次有效值。 ​ 其实可以理解为在C语言中,定义一个指针变量指向一个变量的地址。...:我们见上面的Makefile的第二行的“=”替换成“:=”,重新编译,如下: $ make print 100 $ ​ 从结果上看,变量CURPARA的值为“100”。...6.5.3 自动变量 ​ Makefile的语法提供一些自动变量,这些变量可以让我们更加快速的完成Makefile的编写,其中自动变量只能在规则中的命令使用,常用的自动变量如下: ​ 1)$@:规则中的目标

    3.6K10

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

    因为这样一来,我们的Makefile也要根据这些源文件重新生成,让Makefile自已依赖于源文件?这个功能并不现实,不过我们可以有其它手段来迂回地实现这一功能。...二、变量中的变量 在定义变量的值时,我们可以使用其它变量来构造变量的值,在Makefile中有两种方式来在用变量定义变量的值。...可见,变量是可以使用后面的变量来定义的。...特别注意的是,make是在读取Makefile时就计算条件表达式的值,并根据条件表达式的值来选择语句,所以,你最好不要把自动化变量(如“$@”等)放入条件表达式中,因为自动化变量是在运行时才有的。...“隐含规则”会使用一些我们系统变量,我们可以改变这些系统变量的值来定制隐含规则的运行时的参数。如系统变量“CFLAGS”可以控制编译时的编译器参数。

    4.3K20

    qmake介绍

    ,定义标注的变量来声明项目使用的头文件和源文件;复杂的项目可能需要控制流式的架构来定义构建流程 下面的章节描述了了不同的项目文件的不同类型 变量 在项目文件中,变量通常是包含一串字符串,在最简单的项目中...中的变量来告诉qmake关于头文件和源文件的信息。...变量也可以由内部使用来储存一些临时的列表,而且可以用新值来复写已经存在的值 下面的显示了如何为变量指定值 HEADERS = mainwindow.h paintwidget.h 然后变量中的值按照如下的方式来拓展...,还是一个库,或者一个插件 变量的内容可以通过在前面加一个$$来读取,这样就可以使用一个变量来赋值给另外一个变量了 比如 TEMP_SOURCES = $$SOURCES $$操作符是一个很常用的用来操作字符串或者值得内置函数...Qt应用程序,应该将此应用程序连接到Qt的库中,你可以根据你的实际应用程序使用QT的的变量来控制任何附加的Qt模块,此值是默认添加的,但是你可以在不创建Qt应用程序的时候在qmake中删掉 x11 本项目是一个

    1K10

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

    因为这样一来,我们的Makefile也要根据这些源文件重新生成,让Makefile自已依赖于源文件?这个功能并不现实,不过我们可以有其它手段来迂回地实现这一功能。...二、变量中的变量 在定义变量的值时,我们可以使用其它变量来构造变量的值,在Makefile中有两种方式来在用变量定义变量的值。...( $(foo)的值是$(bar),$(bar)的值是$(ugh),$(ugh)的值是“Huh?”)可见,变量是可以使用后面的变量来定义的。...特别注意的是,make是在读取Makefile时就计算条件表达式的值,并根据条件表达式的值来选择语句,所以,你最好不要把自动化变量(如“$@”等)放入条件表达式中,因为自动化变量是在运行时才有的。...“隐含规则”会使用一些我们系统变量,我们可以改变这些系统变量的值来定制隐含规则的运行时的参数。如系统变量“CFLAGS”可以控制编译时的编译器参数。

    2.8K20

    初识Linux · 有关makefile

    我们不妨理解为语言中的宏,命令的重新命名都可以通过makefile来表示,这就大大简化了工程量了,所以,有的时候makefile的使用从侧面也决定了工程的完备程序以及效率问题。...其中:后面的叫做依赖文件列表,不同的依赖文件可以用空格进行分割,也可以为空。那么下面的指令就是依赖方法,依赖方法前面只能使用Tab来空位置,不能使用四个空格,会报错。...我们首先看看test.c的ACM时间: 这里为什么不让多次执行编译的命令就是因为makefile工具比较的是源文件和可执行文件的ACM时间,如果可执行文件和源文件的ACM时间,在修改上有差别,make检测到源文件更新了...所以@是只能应用一个指令,不是多行的,此时对echo@一下就可以了: 这里还有一个有意思的点是,makefile里面的注释是#,并且允许变量的存在,虽然说是变量,但是实际上就是宏了: 执行的操作实际上就是替换...可以发现,还是可以创建,难道是说随意打乱顺序都没有问题的吗? 当然不是; 此时只能创建预处理期间的文件,可执行文件就创建不了了,凡事都要有一个带头的不是,所以可执行文件要放最开始: 感谢阅读!

    12410

    深入掌握 Makefile 与 Make 工具:高效管理自动化编译的核心原理和最佳实践

    make 命令通过读取一个名为 Makefile 或 makefile 的文件,根据其中定义的规则执行各种任务(如编译、链接等),从而简化和自动化项目的构建过程。...变量:makefile 中定义的变量,允许复用和动态设置。...例如,可以用 %.o: %.c 来描述如何从 .c 文件生成 .o 文件,% 表示文件名的任意部分。...优势 使用 % 可以大大简化 makefile,特别是当项目中有很多类似的文件需要相同的规则时,减少了重复代码,使 makefile 更加简洁和通用。...Makefile 中的配置 有时在 makefile 中的配置也会影响重新编译的条件,例如使用变量、条件语句和模式规则等。 总结 需要重新编译:当源文件、依赖文件发生变化,或者手动强制重新编译时。

    59850

    图解嵌入式系统开发之Makefile篇

    使用wildcard命令不就好了?如下,使用wildcard列出当前路径下所有的源文件名称,保存到变量SRCS中,然后编译的时候使用$(SRCS)取出变量内容来就好了。...使用GCC自带功能导出文件依赖 使用gcc自带的-MM 选项可以导出源文件的依赖关系,如下: gcc -MM main.c ?...我们可以把导出的依赖关系保存成一个文件,然后在下次编译的时候使用Makefile的include功能包含该文件。这样就可以自实现只编译被修改文件的梦想了。。。。?...主Makefile: 主Makefile一般在源码的根目录下, 是执行Make命令读取的第一个Makefile文件,该文件中定义了最终产物的名字,源文件的子目录,启动递归编译,合成最终产物规则,clean...如下: obj-y := main.o obj-y += cmd/ Makefile.build递归到该目录的时候首先包含了该目录下的Makefile文件,然后读取obj-y的值,读到obj-y中 main.o

    1.3K40
    领券