首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Makefile:基于CC/CXX/FC值更改编译器标志

问Makefile:基于CC/CXX/FC值更改编译器标志
EN

Stack Overflow用户
提问于 2016-05-10 14:12:13
回答 1查看 1.6K关注 0票数 2

这似乎是荒谬的,不会有问题,但我找不到一个。无论如何,我正在编写一个makefile,我只想有一个条件语句,根据GNU或Intel编译器是否用于编译环境变量CC设置的程序,设置不同的CFLAGS。

现在,GNU制作手册中有一个章节,它说要执行如下操作:

7.html

代码语言:javascript
复制
ifeq ($(CC),gcc)
  libs=$(libs_for_gcc)
else
  libs=$(normal_libs)
endif

(好的,设置库不是标志,而是任何东西,相同的想法)。好吧,好吧,但这肯定只是条件词是如何工作的一个例子,因为在实践中,这显然是一个愚蠢的方法。CC变量可以包含除了'gcc‘之外的所有东西,并且仍然有效地使用GNU编译器。即使在CC中指定编译器的绝对路径也会破坏此示例。

那么,明智、有力的做法是什么呢?此外,如果这很重要,我也想对C++和Fortran编译器的选择做同样的事情。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-10 14:41:02

你说得对,这一点不那么有力。一个更健壮的方法可能是使用findstring命令,例如:

代码语言:javascript
复制
ifneq (,$(findstring gcc,$(CC)))
  libs=$(libs_for_gcc)
else
  libs=$(normal_libs)
endif
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37141049

复制
相关文章

相似问题

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