在Bazel,我如何制作C++;图书馆依赖于一般规则吗?

在Bazel,我如何制作C++;图书馆依赖于一般规则吗?,bazel,Bazel,我有一个库,它依赖于由shell脚本生成的图形文件 我希望库在编译时使用shell脚本生成图形文件,这些文件应该像“data”语句一样进行复制,但是每当我试图使库依赖于genrule时,我都会得到 cc\U库规则//图形\U资源的deps属性中 genrule规则“//图形\u资源:资源\u gen\u规则”在此处放错位置 (应为cc_inc_库、cc_库、objc_库或 cc_原型库) #这是正确的格式。 #在这里,我们希望通过程序运行所有shader.glsl文件 #归档工具(我们也在别处

我有一个库,它依赖于由shell脚本生成的图形文件

我希望库在编译时使用shell脚本生成图形文件,这些文件应该像“data”语句一样进行复制,但是每当我试图使库依赖于genrule时,我都会得到

cc\U库规则//图形\U资源的deps属性中 genrule规则“//图形\u资源:资源\u gen\u规则”在此处放错位置 (应为cc_inc_库、cc_库、objc_库或 cc_原型库)


#这是正确的格式。
#在这里,我们希望通过程序运行所有shader.glsl文件
#归档工具(我们也在别处构建)并复制
#将.arc文件输出到数据。
# 1. 列出源文件
文件组(
name=“shader\u source”,
srcs=glob([
“着色器/*.glsl”,
]),
)
# 2. 在着色器上调用file_utils::archive_工具
genrule(
name=“着色器生成规则”,
srcs=[“:着色器_源”],
outs=[“着色器.arc”],
cmd=“echo$(位置着色器\源)>temp.txt\
$(位置//通用/文件工具:存档工具)\
--从\u列表创建\u=temp.txt\
--档案(份);\
$(位置//通用/文件工具:存档工具)\
--ls—存档$(输出)“,
tools=[“//公共/文件\u utils:archive\u tool”],
)
# 3. 当二进制文件依赖于此工具时,将复制arc文件。
#这就是我遇到的麻烦
图书馆(
name=“着色器”,
srcs=[],#什么
数据=[“:着色器\u gen\u rule”],
linkstatic=1,
)

我想出来了,您必须将数据字段设置为genrule。请将您的评论转换为答案好吗?这样就更容易在屏幕上看到这个问题已经得到了回答。谢谢我过去也有类似的问题。也许你可以看看这里: