首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在makefile中检查ifort/icc版本

在makefile中检查ifort/icc版本
EN

Stack Overflow用户
提问于 2019-02-14 13:56:57
回答 1查看 1.8K关注 0票数 1

在“检查gcc版本的制造文件?”这个问题中,回答了如何提取gcc编译器的版本。然而,这似乎不适用于英特尔编译器,如icc和ifort?有人知道如何使用icc --versionifort --version提供相同的输出吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-14 15:36:07

如果您想从make内部解决这个问题,那么使用格特 ( GNUmake的助手库)并不是不明智的。它具有一个用于字符串的通配符-通配符,而不是正则表达式。

代码语言:javascript
复制
include gmtt-master/gmtt-master/gmtt.mk

# Pattern for 3 version numbers: a string, a string, then 3 strings separated by '.'
# (hopefully the version numbers)
PATTERN3 := * * *.*.*
# the same for 4 version numbers (consistency, eh?)
PATTERN4 := * * *.*.*.*


# We take only words 1-3 from the version string and try to pattern match it,
# taking only the numbers from the result. The possibility of either 3 or 4 numbers
# complicates matters, we have to test if PATTERN4 matches, if not then we try PATTERN3
VERSION_NR = $(if $(call glob-match,$(wordlist 1,3,$(CC_VERSION)),$(PATTERN4)),\
$(wordlist 5,11,$(call glob-match,$(wordlist 1,3,$(CC_VERSION)),$(PATTERN4))),\
$(wordlist 5,9,$(call glob-match,$(wordlist 1,3,$(CC_VERSION)),$(PATTERN3))))


# just assume the contents of CC_VERSION is the result of $(shell $(CC) --version) etc.
CC_VERSION := ifort version 15.0.1 

$(info $(VERSION_NR))

CC_VERSION := ifort version 19.0.1.144

$(info $(VERSION_NR))

define CC_VERSION
 ifort (IFORT) 19.0.1.144 20181018
 Copyright (c) (C) 1985-2014 Intel Corporation. All rights reserved. 
endef

$(info $(VERSION_NR))

输出:

代码语言:javascript
复制
$ make
 15 . 0 . 1
 19 . 0 . 1 . 144
 19 . 0 . 1 . 144
makefile:36: *** end.
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54692137

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档