V语言多文件编译
假设您有一个包含多个 .v
文件的文件夹。这些文件中,其中一个包含您的 main() 函数,而其他文件则包含辅助函数。这些文件可能按主题组织,但尚未结构化到足以成为独立的可重用模块的程度。此时,您希望将它们全部编译成一个程序。
在其他语言中(如 C、C++ 等),您通常需要使用 #include
指令或构建系统(如 Make、CMake)来:
- 枚举所有文件。
- 将它们分别编译成目标文件(.o 或 .obj)。
- 链接所有目标文件,生成最终的可执行文件。
而在 V 语言中,这一过程极其简单:
您只需使用命令 v run .
,即可编译并运行整个文件夹中的所有 .v 文件。
向程序传递参数也同样简便:
v run . --yourparam some_other_stuff
这条命令会:
- 首先,将您文件夹中的所有 .v 文件编译成一个程序(程序名称默认为文件夹/项目名称)。
- 然后,立即运行该程序,并将 --yourparam some_other_stuff 作为命令行参数 (CLI parameters) 传递给该程序。
您的程序可以通过标准库 os
模块访问这些参数:
import os
println(os.args) // 打印接收到的所有命令行参数
成功运行后,V 默认会删除生成的可执行文件。如果您想保留它,请改用:
v -keepc run .
或者直接手动编译(不运行)并保留可执行文件:
v . # 生成以文件夹命名的可执行文件
所有传递给 V 编译器本身的选项 (如 -keepc, -prod) 必须放在 run 命令之前。所有在源文件/文件夹路径之后的内容,都会被 V 原封不动地传递给您编译的程序处理,V 编译器不会解析它们。