我正在尝试使用额外选项从TCL脚本启动程序(vcom):
set compilationArgs "-quiet -93"
vcom $compilationArgs -work work polar2rect/sc_corproc.vhd
但是当我运行它时,我收到以下错误消息:
# Model Technology ModelSim ALTERA vcom 6.5e Compiler 2010.02 Feb 27 2010
# ** Error: (vcom-1902) Option "-quiet -93" is either unknown, requires an argument, or was given with a bad argument.
# Use the -help option for complete vcom usage.
# /opt/altera/10.0/modelsim_ase/linuxaloem/vcom failed.
TCL似乎将两个额外选项(-quiet)和(-93)作为vcom的一个选项。如果我只使用这两个选项中的一个,它就可以工作。如果我运行(vcom -93 -quiet -work work polar2rect / sc_corproc.vhd)它也可以运行。
我该如何解决这个问题?
谢谢, 亨德里克。
答案 0 :(得分:5)
“问题”是Tcl在管理空间时要小心。如果您有空格参数(例如Windows机器上的许多完整文件名),这非常有用,但如果您希望自动分解列表,有时会令人沮丧。修复是向Tcl表明这个是你要分成多个单词的东西。
最佳答案至少需要Tcl 8.5(找出您使用info tclversion
,info patchlevel
或package require Tcl
获得的版本。
vcom {*}$compilationArgs -work work polar2rect/sc_corproc.vhd
如果你是针对旧版本的Tcl构建的,那么你需要这样做:
eval vcom $compilationArgs -work work polar2rect/sc_corproc.vhd
(或者,这是正确的,但很明显没有人因为明显的原因而烦恼)
eval [list vcom] $compilationArgs [list -work work polar2rect/sc_corproc.vhd]
如果支持,顶部带有扩展语法({*}
)的版本最好。你可以确定它是否足够容易;如果不是,那就是语法错误。