我试图在用bazel构建的c ++项目中使用flatbuffer_cc_library
。但是,我不知道如何处理包含路径。我需要在其他程序包中引用平面缓冲区架构,并将其包含在我的架构中。请注意,我的项目结构有点奇怪-整个过程都在路径的本地bazel工作区(因此为external/project_name
)前缀内进行。如果我为external/project_name
指定include_paths
,事情就可以了,但是我假设那不是我应该做的事情,因为工作空间的名称可以更改。
例如:
plugin/BUILD.bazel
:
cc_library(
name = "plugin-types",srcs = ["types.cpp"],hdrs = ["types.hpp"],deps = [":messages"],)
flatbuffer_cc_library(
name = "messages",srcs = [
"messages.fbs",],includes = [
"//core:messages.fbs",visibility = ["//visibility:public"],)
plugin/messages.fbs
:
include "core/messages.fbs";
namespace plugin;
//...
我得到类似
error: external/project_name/plugin/messages.fbs:1: 40: error: unable to load include file: core/messages.fbs