簡單聊一下makefile中的 =, :=, ?=和+=
最容易混淆的是 =和:=, 我們先來看看makefile:
x = hello
y = $(x)
x = world
test1: test1.cpp
@echo $(y)
執行make後, 結果為world, 再看改動後的makefile:
x = hello
y := $(x)
x = world
test1: test1.cpp
@echo $(y)
執行make後, 結果為hello, 為什麼有區別呢?
因為=其實類似於C++中的引用, 相當於y和x綁定了, 所以在echo的時候, 值為world
而:=其實類似於C++中的賦值, 所以在echo的時候, 值為hello. 在makefile中, 強烈建議使用:=進行復制。
y?=x是什麼呢? 其實很好理解, 它的意思是: 如果y沒有賦值過, 那就賦值。 如果賦值過, 那本次就不賦值了。
y+=x是什麼呢? 很好理解, 其實就是C++中的+=, 相當於累加。
這些東西本來很簡單, 但我發現, 有很多地方沒講清楚, 所以來嘮叨一下。
相關推薦
簡單聊一下makefile中的 =, :=, ?=和+=
最容易混淆的是 =和:=, 我們先來看看makefile: x = hello y = $(x) x = world test1: test1.cpp @echo $(y) 執行make後, 結果為world, 再看改動後的makefile:
簡單瞭解一下oracle中的顯示遊標和儲存過程
遊標 遊標主要分兩類動態和靜態遊標,靜態遊標是編譯時知道明確的select語句的遊標,靜態遊標分類兩種,顯示遊標和靜態遊標,這裡只說顯示遊標 顯示遊標 declare name emp.ename%type; sal emp.sal%type; --宣
簡單講一下 python3 中的 range
range range(start, stop[, step]) 引數說明 start: 計數從 start 開始。預設是從 0 開始。例如range(5)等價於range(0, 5); stop: 計數到 stop 結束,但不包括 stop(這點一定要注意,以前在這裡踩過坑)
簡單總結一下Java中的集合
今天面試了深圳遞四方,奇蹟般的過了,在此紀念一下哈哈 技術面有不少問題沒答好,其中一個就是集合,用了這麼久的集合,腦袋裡面還是沒有一個系統的概念,當然要痛定思痛啦! 上一個集合框架圖 然後這個看起來有點混亂,先來一個簡化的 這個圖大概要能回答的出來,常用的還要
簡單聊一下《垃圾回收機制》
記憶體機制 棧 1.存放區域性變數 2.不可以被多個執行緒共享 3.空間連續,速度快 堆 1.存放物件 2.可以被多個執行緒共享 3.空間不連續,速度慢,但是靈活 方法區 1.存放類的資訊:程式碼、靜態變數、字串常量等等 2.可以被多個執行緒共享 3.空間不連續,速度慢,但是靈活 垃圾回收機制G
簡單聊一下Android音訊通路的切換
Android支援多種裝置的的輸出。一臺正常的機子,本身就自帶話筒,揚聲器,麥克風等多個聲音輸入輸出裝置,再加上五花八門的外接裝置(通過耳機,藍芽,wifi等方式連線),使聲音的輸出更具多樣性。Android支援如此多的裝置連線,那麼android內部是怎樣對裝置的輸出輸出
面試官:要不簡單聊一下你對MySQL索引的理解?
MySQL索引?這玩意兒還能簡單聊?明顯是在挖坑,幸好老夫早有準備,切聽我一一道來。 一、索引是什麼? 索引是幫
Makefile中怎樣調用python和perl文件為自己提供須要的數據
print erl col shel ria 實例代碼 space shell eight Makefile中怎樣調用python和perl文件為自己提供須要的數據,利用print函數對外輸出數據 實例代碼例如以下 perl.pl #!/usr/bin/per
理解一下python中的淺copy和深copy
學習 class 修改 資源 需要 code [0 str 變量 最近在學習過程中,了解了一下,淺copy和深copy,做個記錄。 所謂淺拷貝就是對引用的拷貝,所謂深拷貝就是對對象的資源的拷貝。 首先,對賦值操作我們要有以下認識: 賦值是將一個對象的地址賦值給一個變量,讓
通用 Makefile(及makefile中的notdir,wildcard和patsubst)
and har alt table free modify sources follow rul notdir,wildcard和patsubst是makefile中幾個有用的函數,以前沒留意過makefile中函數的用法,今天稍微看看~ 1、makefile裏的函數
makefile中=、:=和+=的區別
有感 分析 eight c語言 區別 all ont 總結 mil 經常有人分不清= 、:=和+=的區別 這裏我總結下做下詳細的分析: 首先你得清楚makefile的運行環境,因為我是linux系統,那麽我得運行環境是shell 在Linux的shell裏,shell
說一下PHP中die()和exit()區別
選擇 fop class 系統 light 常用 spa ner 終端 PHP手冊:die()Equivalent to exit()。 說明:die()和exit()都是中止腳本執行函數;其實exit和die這兩個名字指向的是同一個函數,die()是exit()函數的別名
Makefile中常見的自動變量和含義
makefile info 自動 vmm var p s xms userinfo href 劫V3W71v9QGW貝膳http://jz.docin.com/cjwjy04096 1姥樸5KAQ訪顯39http://shufang.docin.com/fjqbs11
Makefile中的-C和M=解析
轉自:https://www.aliyun.com/jiaocheng/144874.html 摘要:在進行嵌入式開發過程中,經常需要編寫和執行Makefile,且在大型專案開發過程中,一般也都是使用Makefile來進行管理、編譯、執行的,所以對Makefile的讀寫是嵌入式軟體工程師必
簡單說一下Set,list,Map的型別和自己的特點
首先是Set,List,Map Set和list都是繼承了Conllection介面,而Map是本身就是一個介面 set是最簡單的一種集合,沒有重複物件 set介面主要有兩個實現: 1,hashSet:hashSet按照雜湊演算法進行存取集合中的物件,有hashcode(),存取速度比較快
聊一下自助建站和模板網站代建的不同
市場上做網站的方式,目前分為:自助建站、模板網站代建以及定製建站。定製建站一般指的是你提供資料及需求給建站公司,讓其全部負責網站搭建。今天大家討論一下自助建站和模板網站的區別。 先了解一下自助建站和模板網站的定義: 自助建站:自己做網站。 模板網站:指的是你選擇某個網站(也可以從建
WebService學習(二):建個簡單的webservice服務端和客戶端,順便測試一下
程式碼很簡單,直接如下: 該demo下載地址為: https://download.csdn.net/download/shenhaiyushitiaoyu/10801668 程式碼部分 //介面 package com.fei.demo.inter; pub
ORACLE 中merge....into的用法簡單瞭解一下
MERGE INTO [target-table] A USING [source-table sql] B ON([conditional expression] and […]…) WHEN MATCHED THEN [UPDATE sql] WHEN NO
對話CTO | 和優信CTO邱慧聊二手車產業鏈中的技術價值
· 本文內容為圖文形式 · 欄目:對話CTO · 閱讀時間:10分鐘 · 閱讀建議:深度長文,請配合文末福利慢慢食用 · 掌握難度:★★★☆☆專欄介紹 「對話 CTO」是極客公園的一檔最新專欄,以技術人的視角聊聊研發管理者的發展和成長。本專欄由ONES 的創始人&CEO 王穎奇作為特邀訪談者
設計模式(四):從“兵工廠”中探索簡單工廠、工廠方法和抽象工廠模式
前面陸陸續續的更新了三篇關於設計模式的部落格,是關於“策略模式”、“觀察者模式”、“裝飾者模式”的,今天這篇部落格就從“兵工廠”中來探索一下“工廠模式”(Factory Pattern)。“工廠模式”又可以分為“簡單工廠模式”(Simple Factory Pattern)、“工廠方法模式”(Factory