Ubuntu中GNU Make中的「 」擴充套件

2021-09-13 19:57:44 字數 719 閱讀 6347

srcfiles := $(shell echo .txt)
1、測試在shell中這個命令會輸出什麼:

echo
結果輸出:

0 1 2 3 4 5 6 7 8 9
原來是對大括號中的內容進行了擴充套件。

2、知道了大括號{}的作用,於是嘗試在makefile中也測試一下:

srcfiles := $(shell echo )

all:

echo $(srcfiles)

make,結果輸出:

wtf?黑人問號,這跟預想的結果不一樣啊。咋回事兒啊,這咋整啊。

ubuntu中makefile在不指定直譯器時,一般呼叫的是/bin/sh直譯器,而不是bash直譯器,某些版本的ubuntu中的sh直譯器不支援大括號{}擴充套件!

修改makefile,指定bash直譯器:

shell=/bin/bash

srcfiles := $(shell echo )

all:

echo $(srcfiles)

make,結果輸出:

0 1 2 3 4 5 6 7 8 9
大功告成。

ubuntu中 在Ubuntu中安裝CMake

前言 具體安裝步驟 注意安裝包解壓後的位置 home book cmake 3.12.4 linux x86 64 安裝包解壓位置 2.1 開啟.bashrc檔案進行配置 gedit bashrc2.2 在末尾新增如下的內容 export path home book cmake 3.12.4 li...

Ubuntu中docker中安裝mysql

docker search mysql搜尋需要的mysql docker images 通過此命令檢視linux下的images檔案 引數解釋 name 建立的docker的name e 預設安裝mysql時需要指定密碼 v 目錄對映 d 採取映象檔案 d mysql 8.0或者 d mysql 映...

Ubuntu中編寫指令碼

今天我在按照要求編譯應用程式的時候,以前我都是根據文件上的要求一條條命令去敲,我覺得很麻煩,於是我突發奇想我幹嘛不用乙個指令碼去寫呢。在這裡我簡單的介紹下寫指令碼的規範 首先我們必須的建立乙個指令碼檔案 例如 vim filename 檔案的名字隨便定 這裡我之前想過這個指令碼檔案的屬性有沒有必要去...