我正在尝试将浮点操作添加到.bzl文件中。根据Bazel globals规范,应该按照Starlark规范定义float()函数。但是,当我尝试添加float()时,我得到以下错误:
ERROR: /home/username/code/project/foo.bzl:4:3: name 'float' is not defined
还有什么需要我导入的吗?我假设因为float()关键字是在全局名称空间中定义的,所以我不需要导入它。根据Bazel网站页面上的starlark spec page,不支持float,但这直接与float() specification on the global page冲突。
更新:运行Bazel 3.7.1
发布于 2021-01-10 06:35:36
如果你使用build Bazel from master,它已经支持float了。我通过别名potato将Bazel从master添加到我的系统中。Bazel 3.7.2 (及更早版本)不支持float类型。我猜我们不会在3.7.x中看到任何浮动支持。
如果需要在Bazel 3.7.2及更早版本中使用浮点运算,则必须使用整数技巧实现浮点运算。请参见实例here。
也许你可以实现你的目标,而不需要像here那样使用float,或者退回到一个“普通的”Python脚本。
顺便说一下:在文档中,你可以切换到当前使用的Bazel版本-它将为你提供404 for float和Bazel 3.7.2及更早的版本。仅限master,有文档可用。
发布于 2021-01-10 05:46:54
支持浮点数的Bazel版本尚未发布。据推测,4.0以后的版本将支持它们。
https://stackoverflow.com/questions/65647915
复制相似问题