shell 中的ifeq
发布日期:2021-06-30 18:53:13 浏览次数:2 分类:技术文章

本文共 787 字,大约阅读时间需要 2 分钟。

libs_for_gcc = -lgnu    normal_libs =    foo: $(objects)    ifeq ($(CC),gcc)            $(CC) -o foo $(objects) $(libs_for_gcc)    else            $(CC) -o foo $(objects) $(normal_libs)    endif

可见,在上面示例的这个规则中,目标“foo”可以根据变量“$(CC)”值来选取不同的函数库来编译程序。

我们可以从上面的示例中看到三个关键字:ifeq、else和endif。ifeq的意思表示条件语句的开始,并指定一个条件表达式,表达式包含两个参数,以逗号分隔,表达式以圆括号括起。else表示条件表达式为假的情况。endif表示一个条件语句的结束,任何一个条件表达式都应该以endif结束。

当我们的变量$(CC)值是“gcc”时,目标foo的规则是:

    foo: $(objects)

            $(CC) -o foo $(objects) $(libs_for_gcc)

而当我们的变量$(CC)值不是“gcc”时(比如“cc”),目标foo的规则是:

    foo: $(objects)

            $(CC) -o foo $(objects) $(normal_libs)

当然,我们还可以把上面的那个例子写得更简洁一些:

libs_for_gcc = -lgnu    normal_libs =    ifeq ($(CC),gcc)      libs=$(libs_for_gcc)    else      libs=$(normal_libs)    endif    foo: $(objects)            $(CC) -o foo $(objects) $(libs)

转载地址:https://linus.blog.csdn.net/article/details/48468617 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:如何把应用程序app编译进android系统
下一篇:ubuntu下 安装 adb

发表评论

最新留言

网站不错 人气很旺了 加油
[***.192.178.218]2024年04月25日 14时44分51秒