1. 程式人生 > >在makefile中定義逗號字串和空格字串

在makefile中定義逗號字串和空格字串

空格和逗號是makefile中常見的分隔符,估計是寫不出一個完全沒有空格和逗號的makefile的,沒有的話意義就不對了。但是如果要進行字串處理,空格和逗號就不能直接出現了,即使直接寫上make解析器也不會將其作為字串使用。所以應該這樣寫,才能讓空格和逗號變成字串。具體是誰想出來的已經不可考了,這裡就寫原創,請真正的原創不要見怪。

comma:=,
empty:=
space:=$(empty) 
foo:= a,b,c
bar:= $(subst $(comma),$(space),$(foo)) 

all:
	@echo $(foo)
@echo $(bar)
上面的程式碼將逗號替換成空格。注意comma,empty,space這三個變數。comma的等號後面就是一個逗號;empty的等號後面沒東西,直接回車;space的等號後面是$(empty)再加一個空格(如果你加多個空格那麼space就代表多個空格)

輸出結果(測試的makefile在/usr/local裡):

[email protected]:/usr/local# make
a,b,c
a b c


相關推薦

makefile定義逗號字串空格字串

空格和逗號是makefile中常見的分隔符,估計是寫不出一個完全沒有空格和逗號的makefile的,沒有的話意義就不對了。但是如果要進行字串處理,空格和逗號就不能直接出現了,即使直接寫上make解析器也不會將其作為字串使用。所以應該這樣寫,才能讓空格和逗號變成字串。具體是誰

JS實現去除一個字串的所有標點空格

這是今天做練習的時候碰到的。 有兩種辦法:一是先將要處理的字串分割成陣列,再用filter濾去陣列中的標點和空格(filter對於回撥函式返回true的項會保留在陣列中,返回false的會被濾出陣列),最後再把陣列轉成字串。下面是實現方法: function

JavaJNI的使用詳解第四篇:C/C++建立Java物件String字串物件及對字串的操作方法

首先來看一下C/C++中怎麼建立Java物件:在JNIEnv中有兩種方法是用來建立Java物件的:第一種方法:jobject  NewObject(jclass clazz  , jmethodID methodID, ....):引數解釋:clazz:這個很簡單,就是需要建

Makefile的偽目標變數定義格式

本節我們討論一個Makefile中的一個重要的特殊目標:偽目標。 偽目標是這樣一個目標:它不代表一個真正的檔名,在執行make時可以指定這個目標來執行其所在規則定義的命令,有時我們也可以將一個偽目標稱為標籤。使用偽目標有兩點原因:1. 避免在我們的Makefile中定義的

js常用資料型別之間轉換--字串轉換成數字;----字串json;---字串陣列

字串轉數字 parseInt("1234blue");   //returns   1234 parseInt("0xA");   //returns   10parseInt("22.5");   //returns   22parseInt("blue");   //r

通用 Makefile(及makefile的notdir,wildcardpatsubst)

and har alt table free modify sources follow rul notdir,wildcard和patsubst是makefile中幾個有用的函數,以前沒留意過makefile中函數的用法,今天稍微看看~ 1、makefile裏的函數

Android開發請求URL引數含有中文空格的解決方法

在做安卓應用時,碰到要處理URL請求的中文引數,我們需要用到URLEncoder.encode(引數,"utf-8")方法對中文引數進行編碼,這樣做,能夠解決大多數中文引數的亂碼問題,當然編碼方式不一定是“utf-8”,這取決於你伺服器端的編碼格式。 但是,若是請求引數中不

陣列分割字串連線字串

分割字串 explode() 使用一個字串分割另一個字串 is_numeric() 檢測變數是否為數字或數字字串 //案例:將字串中的數字相加 $str = '15,123,58,abc,89,dde,23,6,f'; $arr = explode(',',$str);

分別在控制檯輸入字串字串,並計算字串中子字串出現的次數。

Scanner s=new Scanner(System.in); System.out.println("請輸入字串"); String t=s.next(); //System.out.println(t); System.out.println("請輸入子字串");

分割字串擷取字串:split substring

  //按“,”擷取字串 String id="123123,234534,453456"; String[] idArry = id.trim().split(","); for(String nid:idArry){System.out.println(nid); } 打印出的值為:12

C# 支援兩種形式的字串:規則字串逐字字串(@字串)

規則字串由包含在雙引號中的零個或多個字元組成(如 “hello”),並且可以包含簡單轉義序列(如表示製表符的 \t)、十六進位制轉義序列和 Unicode 轉義序列。   逐字字串由 @ 字元後跟開始的雙引號字元、零個或多個字元以及結束的雙引號字元組成。一個簡單的示例就是 @“hello”。

Python——str字串unicode字串

對於處理過中文的Python程式設計師來說,想必對UnicodeEncodeError和UnicodeDecodeError並不陌生。為了更好的理解Python中的編碼問題,我們首先介紹一下字元編碼以及Python的兩種字串型別:str和unicode之間的區別

OC不可變字串可變字串(1)

在OC中,字串有:不可變字串(NSString)、可變字串(NSMutableString)。 可變字串的方法繼承於不可變字串。 可變字串 1.初始化一個字串物件(除以下方法外,還可以使用alloc init來初始化字串) NSString *str

使用 java 拆分字串拼接字串

1.拆分字串 String [] tempName ; List<String>mlistName  = new ArrayList<>(); mNames = "dasjdask,dasjdsahdsa,dsdsahadsh,dsah,dasa

字串編碼字串(16進位制數)的相互轉換

發現標準的JSON格式比較耗頻寬,絕的還是轉為UTF8的好 如果要把如下所示的Json編碼轉換為漢字可以使用 {"A1": "adj. \\u7b2c\\u4e00\\u7b49\\u7684} def hex2unicode(s):     return eval('u"""'+s+'"""') pytho

字串學習4——將數字變成字串壓縮字串

class Solution { public:     int compress(vector<char>& chars) {         if(chars.size()==0)             return 0;         vecto

UINCODE字串安全字串函式(好)

字符集基礎知識 在計算機中,字元都是以二進位制編碼方式存在於儲存中 編碼與解碼 將字元輸入計算機儲存的過程類似於一個”編碼”的過程 而將對應的”編碼”顯示出來的過程類似於一個解碼的過程 二進位制值本身代表什麼含義是可以隨意定義的,在記憶體中用某個2進位制的值代表某一

字串可變字串

一、字串的初始化方式 1.不常使用的初始化    方法一     NSString *string = [[NSString alloc] init];     方法二      NSString *string1 = [[NSString alloc] initWithS

Python入門(一):單行字串,多行字串Unicode字串

1 單行字串 字串可以用''或者""括起來表示。如果字串本身包含 ',可以用" "括起來表示,比如 "I'm OK"  類似的,如果字串包含",我們就可以用' '括起來表示: 'Learn "Python".'  如果字串既包含'又包含"怎麼辦?這個時候,就需要對字串

Js 將陣列逗號替換成空格

var qualityManDatas = ["霧氣:0", "玻璃纖維痕:0", "困氣:0", "銀絲痕:0", "熔接痕:0", "水波紋:0", "黑點:0", "頂白:0", "變形:0"