首先,需要将自定义库添加到 BUILD 文件中。例如,如果我们要链接名为 my_lib 的静态库,则需在 BUILD 文件中添加以下内容:
cc_library( name = "my_lib", srcs = ["my_lib.cc"], hdrs = ["my_lib.h"], visibility = ["//visibility:public"], )
然后,在链接目标可执行文件时,需要将 my_lib 添加到 deps 列表中。例如,如果我们要链接名为 my_exe 的可执行文件,则需在 BUILD 文件中添加以下内容:
cc_binary( name = "my_exe", srcs = ["my_exe.cc"], deps = [":my_lib"], )
这样,在构建和链接 my_exe 时,Bazel 就会自动链接 my_lib。如果仍然出现无法链接的错误,可能是因为库的路径未正确设置。可以尝试使用以下选项指定库的路径:
cc_binary( name = "my_exe", srcs = ["my_exe.cc"], deps = [":my_lib"], linkopts = ["-L/path/to/my_lib"], )
其中,/path/to/my_lib 为库文件所在的路径。