在gnu中,我想测试正在使用的gcc的版本。 我正在检查的版本是“4”,但事实上任何次要版本的“4”都是可以接受的。 因此,如果gcc是“4.1”或“4.3.5”,那很好。
如果我运行以下内容:
ifeq "$(findstring 4.,$(GCC_VERSION))" "4."
....做点什么......
对于GCC_VERSION值4.1,它会测试为true,但对于值为“2.4.3”的GCC_VERSION,它也会测试为true,这是我不想要的。
所以我想知道的是如何测试GCC_VERSION的前两个字符。如果这些等于“4”,那么我希望测试通过。
不幸的是,我不知道如何手动测试这样的gnu文件/脚本,代码是在一个大型构建系统的一部分的文件中,其功能不在我的手中。如果你知道如何手动测试这样的脚本,我也会很感激。
答案 0 :(得分:0)
如果可以安全地假设GCC_VERSION
的值,无论从何处获得,都不会以点开头,那么在GNU中,只需测试由点分隔的第一个标记是否足够“ 4" :
ifeq "$(firstword $(subst ., ,$(GCC_VERSION)))" "4"
$(info version 4.x.y)
else
$(info not version 4.x.y)
endif