第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

GNU Makefile變量賦值=,?=,:=和+ =之間有什么區(qū)別?

GNU Makefile變量賦值=,?=,:=和+ =之間有什么區(qū)別?

慕慕森 2019-09-06 17:15:28
任何人都可以清楚地解釋變量賦值在Makefile中是如何工作的。有什么區(qū)別: VARIABLE = value VARIABLE ?= value VARIABLE := value VARIABLE += value我已經(jīng)閱讀了GNU Make手冊中的部分,但它對我來說仍然沒有意義。
查看完整描述

3 回答

?
DIEA

TA貢獻(xiàn)1820條經(jīng)驗 獲得超2個贊


懶集

VARIABLE = value

變量的正常設(shè)置 - 當(dāng)使用變量時,不會在聲明變量時遞歸地擴(kuò)展變量中的值


立即設(shè)定

VARIABLE := value

通過簡單擴(kuò)展內(nèi)部值來設(shè)置變量 - 其中的值在聲明時間擴(kuò)展。


設(shè)置如果缺席

VARIABLE ?= value

僅在變量沒有值時設(shè)置變量


附加

VARIABLE += value

將提供的值附加到現(xiàn)有值(如果變量不存在,則設(shè)置為該值)


查看完整回答
反對 回復(fù) 2019-09-06
?
米脂

TA貢獻(xiàn)1836條經(jīng)驗 獲得超3個贊

使用=會導(dǎo)致為變量賦值。如果變量已有值,則替換它。使用時,該值將被擴(kuò)展。例如:


HELLO = world

HELLO_WORLD = $(HELLO) world!


# This echoes "world world!"

echo $(HELLO_WORLD)


HELLO = hello


# This echoes "hello world!"

echo $(HELLO_WORLD)

使用:=類似于使用=。但是,在使用它時,不是在擴(kuò)展值時,而是在賦值期間擴(kuò)展它。例如:


HELLO = world

HELLO_WORLD := $(HELLO) world!


# This echoes "world world!"

echo $(HELLO_WORLD)


HELLO = hello


# Still echoes "world world!"

echo $(HELLO_WORLD)


HELLO_WORLD := $(HELLO) world!


# This echoes "hello world!"

echo $(HELLO_WORLD)

使用?=分配一個值的變量當(dāng)且僅當(dāng)變量沒有被先前分配。如果先前為變量分配了一個空值(VAR=),我認(rèn)為它仍然被認(rèn)為是集合。否則,功能完全一樣=。


使用+=就像使用一樣=,但不是替換值,而是將值附加到當(dāng)前值,中間有一個空格。如果變量先前已設(shè)置:=,我認(rèn)為它會擴(kuò)展。我認(rèn)為,當(dāng)使用它時,結(jié)果值會擴(kuò)展。例如:


HELLO_WORLD = hello

HELLO_WORLD += world!


# This echoes "hello world!"

echo $(HELLO_WORLD)

如果使用類似的東西HELLO_WORLD = $(HELLO_WORLD) world!,將導(dǎo)致遞歸,這很可能會結(jié)束Makefile的執(zhí)行。如果A := $(A) $(B)使用了,結(jié)果將與使用完全相同,+=因為B擴(kuò)展了,:=而+=不會導(dǎo)致B擴(kuò)展。


查看完整回答
反對 回復(fù) 2019-09-06
?
慕虎7371278

TA貢獻(xiàn)1802條經(jīng)驗 獲得超4個贊

我建議你用“make”做一些實驗。下面是一個簡單的演示,展示之間的差異=和:=。


/* Filename: Makefile*/

x := foo

y := $(x) bar

x := later


a = foo

b = $(a) bar

a = later


test:

    @echo x - $(x)

    @echo y - $(y)

    @echo a - $(a)

    @echo b - $(b)

make test 打?。?/p>


x - later

y - foo bar

a - later

b - later bar


查看完整回答
反對 回復(fù) 2019-09-06
  • 3 回答
  • 0 關(guān)注
  • 653 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號