首页
学习
活动
专区
工具
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变量赋值呢?

3.9K53

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.

1.9K00

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.5K40

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

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

9810

【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) 表示引用变量文件指示。

15920

CMake vs Make对比

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

3.8K31

Hello Qt——QMake用户指南

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

5.3K20

Linux 下make命令与Makefile

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

10.1K20

qmake介绍

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

95010

6_Makefile与GCC

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

3.5K10

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

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

4.2K20

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

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

2.6K20

图解嵌入式系统开发之Makefile

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

1.3K40

Linux中Makefile文件详解

变量引用: 使用 @ 表示目标,^ 表示所有依赖文件, 通配符: 使用 % 通配符表示一类文件,例如 %.o: %.c。 Makefile 是一个非常强大工具,可以用于管理复杂项目结构。...以下是使用自动变量例子: main: main.o utils.o gcc -o $@ $^ 这个规则等价于之前规则,使用了自动变量表示目标文件和所有依赖文件。 7....通用规则 如果有多个类似的目标文件,可以使用通用规则。通用规则使用通配符 % 匹配文件名一部分。...在规则命令中使用时,用 (CC) 和 (CFLAGS) 替代具体。 9. include 指令 Makefile 可以包含其他 Makefile使用 include 指令。...变量Makefile 中,可以使用变量存储和引用。在上述例子中,CC 和 CFLAGS 就是变量,分别存储编译器和编译选项。 13.

38710

qmake:配置qmake

可以在 qmake 中设置一个属性: qmake -set PROPERTY VALUE 您可以 qmake 检索此信息,如下所示: qmake -query PROPERTY qmake....version 变量查询 Qt 模块特定版本号 二、QMAKESPEC qmake 需要一个平台和编译器描述文件,其中包含许多用于生成适当 Makefile 默认。...这是通过重新定义某些内置变量实现。...例如,可以在项目文件中使用以下分配重新定义用于 moc 文件扩展名: QMAKE_EXT_MOC = .mymoc 以下变量可用于重新定义 qmake 识别的常见文件扩展名: QMAKE_EXT_MOC...以上所有都只接受第一个,下面的代码第二行不起作用: QMAKE_EXT_MOC = .mymoc_1 QMAKE_EXT_MOC = .mymoc_2 有两个变量可以接受列表: QMAKE_EXT_CPP

2.5K10

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

一般来说,每个源文件都应该对应于一个中间目标文件(O文件或是OBJ文件)。链接时,主要是链接函数和全局变量,所以,我们可以使用这些中间目标文件(O文件或是OBJ 文件)链接我们应用程序。...因为这样一,我们Makefile也要根据这些源文件重新生成,让Makefile自已依赖于源文件?这个功能并不现实,不过我们可以有其它手段迂回地实现这一功能。...二、变量变量 在定义变量时,我们可以使用其它变量构造变量,在Makefile中有两种方式在用变量定义变量。...先看第一种方式,也就是简单使用“=”号,在“=”左侧是变量,右侧是变量,右侧变量可以定义在文件任何一处,也就是说,右侧中变量不一定非要是已定义好,其也可以使用后面定义。...( $(foo)是$(bar), $(bar)是$(ugh),$(ugh)是“Huh?”)可见,变量可以使用后面的变量定义

3.1K20
领券