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

Makefile:从版本字符串中获取短版本字符串

Makefile是一种构建工具,用于自动化编译和构建软件项目。它是一个文本文件,包含了一系列规则,用于指定如何编译和链接源代码文件以生成可执行文件或库文件。

在Makefile中,可以使用字符串操作来从版本字符串中获取短版本字符串。下面是一个示例的Makefile规则:

代码语言:txt
复制
VERSION := 1.2.3
SHORT_VERSION := $(word 1, $(subst ., ,$(VERSION)))

all: 
    @echo Short version: $(SHORT_VERSION)

在上述示例中,我们定义了一个变量VERSION,它存储了完整的版本字符串"1.2.3"。然后,我们使用了字符串操作函数来获取短版本字符串。首先,使用subst函数将版本字符串中的点号替换为空格,得到一个由三个数字组成的字符串。然后,使用word函数获取这个字符串的第一个单词,即短版本字符串。最后,在目标规则中使用echo命令输出短版本字符串。

这种方法可以适用于各种版本字符串格式,如"x.y.z"、"x-y-z"等。

Makefile在软件开发中起到了重要的作用,它可以自动化构建过程,提高开发效率。腾讯云提供了一系列与云计算相关的产品,如云服务器、对象存储、云数据库等,可以帮助开发者快速搭建云计算环境并进行应用部署。您可以通过访问腾讯云官网(https://cloud.tencent.com/)了解更多相关产品和详细信息。

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

相关·内容

版本1到版本5如何编写牛逼的Makefile

3.2 版本2 我们发现版本1太长了,如何把他进行优化,可以根据语言的特性,当然Makefile也有,那就是变量来赋值,将上述的所有.o文件赋值给obj变量,main赋值给target变量。...最后两行解释之前说一下自动变量: $<: 规则的第一个依赖 $@: 规则的目标 $^: 规则的所有依赖 所以最后一行就变成如下图所示的情况,而%.o与%.c表示匹配每一个.o与.c文件。...3.3 版本3 引入CC变量,在Makefile中有一些内置变量,比如这里要使用的CC,我们可以对其进行赋值修改,也可以直接使用,进一步修改版本2,进一步修改版本2,变为版本3。 ?...3.4 版本4 这里我们引入Makefile的两个常用函数:wildcard与patsubst,分别为查找本地中的文件与模式匹配。...3.5 版本5 在使用Makefile的时候我们需要clean掉所有的.o文件跟中间文件,那么如何在Makefile实现呢。

90820
  • golang 获取字符串个数

    golang 获取字符串个数 在 golang 不能直接用 len 函数来统计字符串长度,查看了下源码发现字符串是以 UTF-8 为格式存储的,说明 len 函数是取得包含 byte 的个数 /...RuneCountInString() package main import ( "bytes" "fmt" "strings" "testing" "unicode/utf8" ) /* 在 golang 不能直接用...len 函数来统计字符串长度,查看了下源码发现字符串是以 UTF-8 为格式存储的,说明 len 函数是取得包含 byte 的个数 */ func main() { s := "hello,...(s) } } func Benchmark4(b *testing.B) { for i := 0; i < b.N; i++ { f4(s) } } 在 golang ldea配置我没有看到...benchamark配置,总说包不对,在命令行输入 go test stringCount_test.go -bench ".*" 得到以下结果 Benchmark1-12 100000000

    2.3K20

    后端 | Java 利用substring()和indexOf()字符串获取指定的字符

    代码: @Test void spiltStrDemo() { /* * str.substring(4, 9); -->在str截取从下标4开始(包含),到下标...9之间的字符(不包含9) * str.indexOf("/"); -->返回str“/”第一次出现时的下标 * str.indexOf("/", 5); -->返回跳过...12346789999"; /*第一种情况:知道具体字符下标,直接用substring()传入字符下标截取*/ // 第一种情况假设我们已经知道了str的具体值,我们要从str取出.../*善于思考的同学已经发现,第二种情况我们只能获取id,想拿后面其他数据就很难办了,因为我们有两个“/”,因此就有了第三种情况*/ /*第三种情况:str中有多个相同字符,我们要跳过前几个字符获取后面的数据...("/"); // 然后我们拿到第二个“/”的下标,前两个“/”之间的数据就是我们的name字段了 // indexOf()可以传两个参数,第一个是要寻找的子字符串,第二个是哪个下标位置开始寻找

    3.2K40

    UNMET PEER DEPENDENCY 理解依赖版本管理

    你可能会发现上面例子,imweb的eslint规则是airbnb风格继承而来的,所以这个版本的eslint其实是airbnb这个包所缺失的。...它们分别可以做到上面第三条规则和第四条规则的效果(最高版本为最新版本),同时又兼容了主版本号/次版本号为0的情况: ~: 当安装依赖时获取到有新版本时,安装到 x.y.z z 的最新的版本。...即保持主版本号、次版本号不变的情况下,保持修订号的最新版本。 ^: 当安装依赖时获取到有新版本时,安装到 x.y.z y 和 z 都为最新版本。 ...文件手动添加依赖; 5、bundledDependencies 这个依赖项也可以记为 bundleDependencies,与其他几种依赖项不同,他不是一个键值对的对象,而是一个数组,数组里是包名的字符串...假如还有很多子依赖,用到了更低的版本,那就用下面这种吧。 2、另一种方法是对每个npm ERR报出的包,进入到node_modules对应包的目录,进行单独的安装,并指定版本(想想就麻烦)。

    4.9K20

    go已知列表查找字符串

    01 May 2016 go已知列表查找字符串 最近在开发遇到一个需求,需要查找某个给定的字符串是否属于有效字符串。...例如以下字符串都是有效字符串: "key1" "key2" "key3" "key4" "key5" "key6" 若查找的字符串是key1,存在key1,所以key1是有效字符串,若查找的字符串是key0...,不存在key0,所以key0是无效字符串。...我通过4种方式实现,分别如下: 方式一:使用map 将有效的字符串定义成map的key,value都是true,如下: var validKeyMap = map[string]bool{ "key1...若查找的字符串是key1,则时间复杂度O(1),但是若查找的字符串是最后一个字符串时,时间复杂度和方式二一样,都是O(N),N表示字符串个数,但是该方式没有没有使用任何数据结构,如果对内存开销要求高,可以推荐使用

    2.8K70

    python字符串处理入门到进阶

    知识回顾: 1、字符串的赋值相关知识点。 2、字符串的转义,如何输出单引号、双引号,如何换行\n ,制表符\t ---- 本节知识视频教程 以下开始文字讲解: 一、提问:字符串如何不转义?...法一:\\ 把转义符号转义掉 \转义掉,就用\\ 法二:在字符串前加小写r,注意的是不能和变量字符串连用 print(r"刘金玉\\n编程") 法三:repr(字符串)函数 >>> x="刘金玉\n编程...二、如何看字符串的长度? 这里介绍使用len(字符串)函数 注意: 1、输出的长度\n看成一个字符 2、repr(字符串)函数输出的字符串结果包含的单引号,将被计算在字符串的长度内。...使用‘’’或者“”” x="""刘金玉 编程 编程创造城市""" 这里注意的是三个引号的方式的时候,注意中间输出的换行,也将在结果输出换行,输出格式不变。如遇到转义字符,那么也会被转义。...使用符号续行书写: \ 作用就是续行书写,这里注意,下一行的空格会被实际输出 六、总结强调 1、掌握字符串的长度获取。 2、掌握数字转字符串。 3、理解字符串如何不被转义。使用转义字符。

    97710

    使用kmp算法匹配字符串来查找文件(java版本)-2

    前言 接上篇文章, 这里完成改文章的后部分, 以python编写的版本 正文如下 同时,我也对原先写的python代码进行了修改,使用KMP算法 python实现KMP算法代码 其python实现的KMP...算法核心代码如下 def kmpSearchStrByStr(totalStr, strSearch, kmpTable): #kmp算法查找 #返回字符串包含搜索串的个数...break #print(existCount) return existCount def getKMPtable(strSearch): #获取...kmp的部分匹配数值表 #但得先获取字符串所有可能长度的最大公告元素长度,将其存放到int数组返回 intTablesLength = len(strSearch) kmpTable...kmpTable.append(intMaxPublicNum) #print(kmpTable) return kmpTable def getMaxPublicNum(strItem): #获取前缀和后缀

    61500

    【已解决】怎么获取字符串相同字符串第N 个所在的位置

    问题描述 给一个配置的字符串例如 NSString *string = @"34563879-+4561346573"; 现在我想获取字符串第3个字符串3所在的位置。...对于我们经常用的rangeOfString这个方法只能获取最近的一次出现的位置,而不能指定第几个出现的位置。 查看关于 NSString里面其他不经常用到的 API,还真找到一个相似的方法。...NSCaseInsensitiveSearch = 1, //不区分大小写比较 NSLiteralSearch = 2, //逐字节比较 区分大小写 NSBackwardsSearch = 4, //字符串末尾开始搜索...NSAnchoredSearch = 8, //搜索限制范围的字符串 NSNumericSearch = 64, //按照字符串里的数字为依据,算出顺序。...(10_5, 2_0) = 128,//忽略 "-" 符号的比较 NSWidthInsensitiveSearchNS_ENUM_AVAILABLE(10_5, 2_0) = 256,//忽略字符串的长度

    2.5K20

    获取类路径某个json文件的内容字符串

    前言 实际项目中可能会有需要读取类路径下面的配置文件的内容的需求,由于springboot项目打包的是jar包,通过文件读取获取流的方式开发的时候没有问题,但是上到linux服务器上就有问题了,对于这个问题记录一下处理的方式...类加载器的方式 通过类加载器读取文件流,类加载器可以读取jar包的编译后的class文件,当然也是可以读取jar包的文件流了 比如要读取resources目录下common/tianyanchasearch.json...FileUtil.getStringFromInputStream(resourcePath); return GlobalResult.succeed(JSON.parseObject(content)); /** * 输入流获取文件内容字符串...; } catch (IOException ex) { System.out.println("=======获取数据时...推测主要原因是springboot内置tomcat,打包后是一个jar包,因此通过文件读取获取流的方式行不通,因为无法直接读取压缩包的文件,读取只能通过流的方式读取

    2.6K30
    领券