首页
书签
论坛
网盘
邮件
壁纸
影视
在线音乐
更多
直播
统计
个人微博
云笔记
云存储
图片视频
友链
留言
关于
Search
1
文档内容搜索哪家强? 15款文件搜索软件横向评测
13 阅读
2
常见系统部署(1)
11 阅读
3
makfile 知识汇总
10 阅读
4
Verilog-AMS Verilog-A介绍
7 阅读
5
欢迎使用 Typecho
5 阅读
默认分类
数字电路
芯片后端
模拟电路
芯片验证
原型验证
算法与架构
DFX与量产
windows设置
Linux设置
MacOS设置
移动OS设置
软件方案
登录
Search
标签搜索
python
PyQT
systemverilog
Alist
Docker
cadence
sv
webdav
vscode
cpp
upf
ESL
TLM
浏览器
virtuoso
tsmc8rf
TSMC
CXL
PCIE
Yosys
bennyhe
累计撰写
46
篇文章
累计收到
8
条评论
首页
栏目
默认分类
数字电路
芯片后端
模拟电路
芯片验证
原型验证
算法与架构
DFX与量产
windows设置
Linux设置
MacOS设置
移动OS设置
软件方案
页面
书签
论坛
网盘
邮件
壁纸
影视
在线音乐
直播
统计
个人微博
云笔记
云存储
图片视频
友链
留言
关于
搜索到
1
篇与
的结果
2025-06-12
makfile 知识汇总
怎么实现数组的效果比如有多个文件的编译问题vlogan -sysc -sc_model adder -sc_portmap the.map adder.vvlogan -sysc -sc_model multiplier -sc_portmap the.map multiplier.v每增加一下文件都需要增加一个增加的编译,该怎么实现呢?如果model 名字和文件名字就是.v 关系 可以使用foreachnames := a b c d files := $(foreach n,$(names),$(n).v) all:$(names) %: %.v echo "$@ $<" vlogan -sysc -sc_model $@ -sc_portmap the.map $< 输入make all 就行了这里的%: %.v , 实际上表示任意的命令 比如make xxx, % 就表示xxx, 依赖%.v 就是表示xxx.v 存在, $@就表示这个对像xxx,$< 表示第一个依赖,就是xxx.vforeach 函数foreach函数和别的函数非常的不一样。因为这个函数是用来做循环用的,Makefile中的foreach函数几乎是仿照于Unix标准Shell(/bin/sh)中的for语句,或是C-Shell(/bin/csh)中的foreach语句而构建的。它的语法是:$(foreach ,,)这个函数的意思是,把参数 中的单词逐一取出放到参数 所指定的变量中,然后再执行 所包含的表达式。每一次 会返回一个字符串,循环过程中, 的所返回的每个字符串会以空格分隔,最后当整个循环结束时, 所返回的每个字符串所组成的整个字符串(以空格分隔)将会是foreach函数的返回值。所以, 最好是一个变量名, 可以是一个表达式,而 中一般会使用 这个参数来依次枚举 中的单词。举个例子:names := a b c dfiles := $(foreach n,$(names),$(n).o)上面的例子中, $(name) 中的单词会被挨个取出,并存到变量 n 中, $(n).o 每次根据 $(n) 计算出一个值,这些值以空格分隔,最后作为foreach函数的返回,所以, $(files)的值是 a.o b.o c.o d.o 。注意,foreach中的 参数是一个临时的局部变量,foreach函数执行完后,参数 的变量将不在作用,其作用域只在foreach函数当中。常用的内置变量$@:表示目标文件。$^:表示所有的依赖文件。$<:表示第一个依赖文件。main: main.o utils.o$(CC) -o $@ $^ 在这里,$@ 表示目标文件 main,$^ 表示所有的依赖文件 main.o 和 utils.o。wildcard 用法SRCS := $(wildcard *.c)在这个例子中,$(wildcard *.c) 将匹配当前目录下所有以 .c 结尾的文件,并将符合条件的文件名列表赋值给变量 SRCS。FILES := $(wildcard src/*.c include/*.h)这个示例中,$(wildcard src/.c include/.h) 将匹配 src 目录下的所有 .c 文件和 include 目录下的所有 .h 文件,并将结果合并为一个文件列表赋值给变量 FILES。总之,$(wildcard pattern) 函数非常有用,可以帮助 Makefile 在构建过程中获取符合特定模式的文件列表,使得构建过程更加灵活和自动化。
2025年06月12日
10 阅读
0 评论
0 点赞