代码之家  ›  专栏  ›  技术社区  ›  cjds

未定义名称“cc\u library”

  •  0
  • cjds  · 技术社区  · 4 年前

    tools/vector_gen.bzl

    def drake_cc_vector_gen_library(
            name,    
            srcs = [],
            deps = [],
            **kwargs):
        generated = cc_vector_gen(
            name = name + "_codegen",
            srcs = srcs,
            include_prefix = "drake",
            drake_workspace_name = "",
            visibility = [],
        )
        cc_library(
            name = name,
            srcs = generated.srcs,
            hdrs = generated.hdrs,
            deps = deps + generated.deps,
            **kwargs
        )
    

    project/BUILD.bazel

    load("//tools:vector_gen.bzl", "cc_vector_gen_library")
    
    cc_vector_gen_library(
        name = "x",
        srcs = [
          "x.yaml",
        ],
        visibility = ["//visibility:public"],
    )
    

    但是当我尝试 bazel build //... 在目录的顶端

    ERROR: /root/doublependulum/tools/vector_gen.bzl:170:5: name 'cc_library' is not defined
    ERROR: Skipping '.': error loading package 'double_pendulum': Extension 'tools/vector_gen.bzl' has errors
    WARNING: Target pattern parsing failed.
    ERROR: Extension 'tools/vector_gen.bzl' has errors
    

    我想我不明白。不是吗 cc_library 总是被定义?否则怎么导入?

    0 回复  |  直到 4 年前
        1
  •  3
  •   James Sharpe VonC    4 年前

    在.bzl文件中,需要将内置定义限定为native.cc\u库