makefile-- 其他函數

fuctions

join

?$(join <list1>,<list2>)

連接函數

把list2?中單詞對應的添加到list1?的后面

若list1?的單詞個數> list2 ,多出的list1? 保持不變

若list2?的單詞個數> list21,多出的list2?添加到list1?后面

foreach

?$(foreach <var>,<list>,<text>)

for循環函數

把list的單詞逐一取出放在參數?var?里面,然后在執行text所包含的表達式

call

?$(call <function>,<param1>,<param2>,...)

call?調用其他的函數

param1?對應$(1) ,以此類推

origin

?$(origin var)

查詢var變量的來源

有如下幾種返回值

default,默認的

environment,環境變量

undefined,未定義的

file,makefile內定義的

command?line

override,被override重新定義的

automatic,自動化變量

shell

?$(shell  pwd)

?可以與awk?和sed?使用

error

?$(error  <texts> )

makefile?控制函數,輸出error?信息?

warning

?$(warning  <texts>)

makefile?控制函數,輸出warning?信息

example?

list1 := 111 222 333
list2 := aaa bbb ccc ddd 
list :=  $(join $(list1),$(list2) ) ################################################
#### foreach var,list,text
####  loop in list ,and put evevy item in var and do  text 
################################################
for_data= item env monitor 
rst_for := $(foreach var,$(for_data),$(var).sv )################################################
#### common if 
#### when  condition return is not "" [strip xxx],call  'then_part' ,else call 'else part' 
#### $(if <condition>,<then patr>,<else part> ) 
#### $(if <condition>,<then patr>) 
rst_if = $(if name==ryz, name is ryz,name is not ryz)################################################
#### call function,param1,param2,param3,....
#### call others functions 
################################################
max=$(2) $(1).sv
rst_call:=$(call max,119,33)################################################
#### origin var 
#### tell var from 
#### if var not define ,return undefined
#### if define in makefine ,return file
#### if var is a default  ,return default 
#### if var is a environment and make not -e option ,return environment
#### if define in makefine ,return file
#### return command line 
#### return override 
#### return automatic 
################################################
var_file := llll
var_file:=$(origin $(var_file) )
var_undefined = $(origin $(var_no) )################################################
#### shell 
#### using awk and sed         
################################################rst_pwd := $(shell pwd)################################################
#### makefile control functions 
#### $(error text),quit now
#### $(warning text),only type text,not quit
################################################
warning_info := $(warning get a warning msg)
error_info =$(error  get an error)ifdef ERROR_MSG$(error_info)
endiferr:$(error_info)war:$(warning_info)all:@echo $(list)@echo $(rst_for)@echo $(rst_if)@echo $(rst_call)@echo $(var_file)@echo $(rst_pwd)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/92189.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/92189.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/92189.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【unity實戰】使用unity的Navigation+LineRenderer實現一個3D人物尋路提前指示預測移動軌跡的效果,并可以適配不同的地形

文章目錄 前言 實戰 1、實現要點 1.1 NavMesh.CalculatePath方法計算兩個點之間的導航路徑 1.2 尋找投射的地面點 2、代碼實現如下 3、烘培地面導航網格 4、添加導航玩家代理,并掛載前面的腳本 5、創建Line Renderer,并放在角色下面作為子物體 6、運行游戲查看效果 專欄推薦 …

寶塔申請證書錯誤,提示 module ‘OpenSSL.crypto‘ has no attribute ‘sign‘

遇到"module OpenSSL.crypto has no attribute sign"錯誤時&#xff0c;通常是由于pyOpenSSL版本兼容性問題導致的?。以下是解決方案&#xff1a;通過SSH連接到服務器&#xff0c;執行以下命令安裝指定版本的pyOpenSSL&#xff1a;btpip install pyOpenSSL24.2.1-U然…

【ffmpeg源碼學習】詳解pkg-config的作用

文章目錄 前言 一、什么是pkg-config? 二、為什么需要 pkg-config? 三、pkg-config 的工作原理 3.1 .pc 文件 3.2 查詢流程 3.3 查找路徑 四、pkg-config 在 FFmpeg 中的作用 五、pkg-config 的常用命令 六、在項目中的實際用法 6.1 makefile示例: 6.2 cmake示例: 6.3 gcc命…

PHPStorm攜手ThinkPHP8:開啟高效開發之旅

目錄一、前期準備1.1 開發環境搭建1.2 配置 Xdebug二、PHPStorm 集成 ThinkPHP82.1 導入 ThinkPHP8 項目2.2 配置 PHP 解釋器2.3 配置服務器三、ThinkPHP8 項目開發基礎3.1 項目結構剖析3.2 控制器與方法創建3.3 視圖渲染與數據傳遞四、數據庫操作與模型定義4.1 數據庫配置4.2 …

HTTP性能優化實戰技術詳解(2025)

HTTP性能優化實戰技術詳解本文基于提供的文章大綱&#xff0c;對HTTP性能優化進行擴展說明。文章結構清晰&#xff0c;從理解瓶頸到具體優化策略&#xff0c;再到監控與高級技巧&#xff0c;逐步展開。每個部分包括背景介紹、核心原理、實施步驟、示例或工具推薦&#xff0c;確…

探索文件系統:軟硬鏈接的奧秘

目錄 1.文件系統 1.1 磁盤物理存儲結構 1.2 磁盤邏輯存儲結構 1.3 inode編號 2. 軟硬鏈接 2.1 軟鏈接 2.2 硬鏈接 2.3 目錄文件的軟硬鏈接 1.文件系統 在一臺電腦中&#xff0c;大部分文件都不是被打開的&#xff0c;這些文件都在磁盤中進行保存。已經打開的文件需要管…

3x3矩陣教程

3x3矩陣教程 1. 簡介 三維矩陣是線性代數中的重要概念&#xff0c;用于表示三維空間中的線性變換。本教程將介紹如何使用C實現三維矩陣的基本運算和變換。 2. 代碼實現 2.1 頭文件 (matrix3x3.h) #ifndef MATRIX3X3_H #define MATRIX3X3_H#include <array> #include <…

深度學習前置知識

文章目錄介紹數據操作張量張量的定義1. **張量的維度&#xff08;Rank&#xff09;**2. **張量的形狀&#xff08;Shape&#xff09;**簡單的數據預處理&#xff08;插值線性代數微積分概率論1. 基本概念(1) 隨機試驗與事件(2) 概率公理&#xff08;Kolmogorov公理&#xff09;…

XSS學習總結

一.XSS概述 跨站腳本攻擊&#xff08;Cross-Site Scripting&#xff0c;XSS&#xff09;是一種常見的網絡安全漏洞&#xff0c;攻擊者通過在網頁上注入惡意腳本代碼&#xff0c;從而在用戶的瀏覽器上執行惡意操作。這些腳本可以是 JavaScript、HTML 或其他網頁腳本語言。一旦用…

計算機網絡中:傳輸層和網絡層之間是如何配合的

可以把網絡層和傳輸層想成一個“快遞系統”&#xff1a; 網絡層&#xff08;IP 層&#xff09; 郵政系統&#xff1a;只負責把“包裹”&#xff08;IP 數據報&#xff09;從 A 地搬到 B 地&#xff0c;不保證順序、不保證不丟、不保證不重復。傳輸層&#xff08;TCP/UDP 層&am…

【NLP輿情分析】基于python微博輿情分析可視化系統(flask+pandas+echarts) 視頻教程 - 用戶登錄實現

大家好&#xff0c;我是java1234_小鋒老師&#xff0c;最近寫了一套【NLP輿情分析】基于python微博輿情分析可視化系統(flaskpandasecharts)視頻教程&#xff0c;持續更新中&#xff0c;計劃月底更新完&#xff0c;感謝支持。今天講解用戶登錄實現 視頻在線地址&#xff1a; …

Redis主從復制數據同步實現原理詳細介紹

文章目錄一、主從復制的概念二、全量復制&#xff08;完整重同步&#xff09;三、增量復制&#xff08;部分重同步&#xff09;1. 增量復制的核心思想2. 增量復制的實現3. 復制偏移量&#xff08;replicationoffset&#xff09;4. 復制積壓緩沖區&#xff08;replicationbacklo…

docker 軟件bug 誤導他人 筆記

DockerDesktopInstaller.exe install --installation-dirX:\AI-AI\docker\pro\ 由于 Docker官方隨便修改安裝命令&#xff0c;這個在4.4一下是無法使用的&#xff0c;存在誤導他人

Python 進階(六): Word 基本操作

目錄 1. 概述2. 寫入 2.1 標題2.2 段落2.3 表格2.4 圖片2.5 樣式 3. 讀取 1. 概述 Word 是一個十分常用的文字處理工具&#xff0c;通常我們都是手動來操作它&#xff0c;本節我們來看一下如何通過 Python 來操作。 Python 提供了 python-docx 庫&#xff0c;該庫就是為 Wo…

OpenLayers 入門指南【三】:API概要

目錄一、官方文檔二、核心類三、總結一、官方文檔 首頁右側有四個欄目分別是 Docs(文檔):也可以理解為使用指南&#xff0c;涵蓋一下四個模塊 Quick Start(快速入門)&#xff1a;介紹如何快速引入并使用OpenLayers快速構建一個地圖應用FAQ(問答)&#xff1a;介紹一些常見問題的…

JAVA面試寶典 -《Kafka 高吞吐量架構實戰:原理解析與性能優化全攻略》

&#x1f680; Kafka 高吞吐量架構實戰&#xff1a;原理解析與性能優化全攻略 隨著大數據技術在日志收集、埋點監控、訂單流處理等場景的普及&#xff0c;Kafka 已成為流處理架構中的核心組件。它之所以能在海量數據場景下保持高吞吐、低延遲&#xff0c;源于其在架構層面和底…

把sudo搞壞了怎么修復:報錯sudo: /etc/sudo.conf is owned by uid 1000, should be 0

今天部署 NFS 的時候一不小心給/etc目錄下所有的文件都所有者給改了&#xff0c;然后使用sudo的時候就出現了下面的問題&#xff1a; sudo: /etc/sudo.conf is owned by uid 1000, should be 0 sudo: /etc/sudo.conf is owned by uid 1000, should be 0 sudo: /etc/sudoers i…

VUE前端項目開發1.0.1版本

項目包含用戶權限管理、表單提交、數據上傳下載、儀表盤可視化等功能&#xff0c;非常適合新手從零開始學習Vue3前端開發&#xff0c;下述包含所有開發源代碼&#xff0c;敬請食用 廢話少說先上圖: 登陸界面: 儀表盤管理系統: 用戶管理: 對于普通用戶只有儀表盤和個人信息界…

低代碼平臺能否完全取代傳統前端開發

低代碼平臺不能完全取代傳統前端開發&#xff0c;主要原因包括靈活性有限、性能優化能力不足、復雜定制需求難以實現。 低代碼平臺盡管能快速開發出相對標準化的應用&#xff0c;但在處理復雜、個性化的業務需求時&#xff0c;明顯表現出不足。尤其在需要精細化控制UI界面、高性…

Git 中如何比較不同版本之間的差異?常用命令有哪些?

回答重點1&#xff09; git diff <commit1> <commit2> &#xff1a;比較兩個指定的提交之間的差異。2&#xff09; git diff <branch1> <branch2> &#xff1a;比較兩個分支之間的差異。3&#xff09; git diff <path> &#xff1a;比較工作目錄…