【问题标题】:what do the compiler options mean? and '?'followed by '=-03'编译器选项是什么意思?和 '?' 后跟 '=-03'
【发布时间】:2016-01-20 06:51:11
【问题描述】:

/redis/deps/hiredis/Makefile

    CC:=$(shell sh -c 'type $(CC) >/dev/null 2>/dev/null && echo $(CC) ||      echo gcc')
    OPTIMIZATION?=-O3
    WARNINGS=-Wall -W -Wstrict-prototypes -Wwrite-strings
    DEBUG?= -g -ggdb

编译器选项是什么意思?和 '?' 后跟 '=-03'?

【问题讨论】:

    标签: makefile gnu-make hiredis


    【解决方案1】:

    OPTIMIZATION?=-O3

    1. 如果变量OPTIMIZATION 尚未定义,则OPTIMIZATION 的值为-O3;

    2. 另一方面,如果已经定义了变量OPTIMIZATION,则跳过这条语句,OPTIMIZATION将保持之前的值

    【讨论】:

    • 也许澄清 ?= 是 GNU Make 中的条件赋值运算符。
    【解决方案2】:

    GNU make manual 包含 ?= 运算符的此文本

    变量还有另一个赋值运算符“?=”。这是 称为条件变量赋值运算符,因为它只有 如果变量尚未定义,则效果。

    所以,这句话

    OPTIMIZATION?=-O3
    

    表示如果OPTIMIZATION已经定义,忽略它,如果没有,定义它并赋值-03

    -03 作为编译器标志意味着在优化级别 3 编译。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-24
      • 2021-05-17
      • 1970-01-01
      • 2015-09-02
      • 2019-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多