Был указан путь включения, но по-прежнему не удалось включить заголовок в путь в проекте Bazel C++
У меня есть проекты с такой структурой каталогов
---root
| |--src
| |--project1
| |--model
| | |--incude
| | | |--model
| | | |--modelA.hpp
| | | |--modelB.hpp
| | |--modelA.cpp
| | |--modelB.cpp
| | |--BUILD #1
| |...
| |--view
| |...
| |--common
| | |--include
| | |--common
| | |--data_type.hpp
| |--BUILD #2
|--WORKSPACE
Поскольку у меня есть другой пакет в этом проекте, и некоторые из них используют один и тот же самоопределяемый тип данных, я определил их в пакете с именемcommon
.
Теперь я включаюdata_type.hpp
в файлеmodelA.hpp
...
#include "common/data_type.hpp
...
Ссылаясь на пример stage3 в руководстве ,BUID
(№1) вот так
cc_library(
name = "modelA",
hdrs = "include/model/modelA.hpp",
deps = ["//src/project/common:data_type"],
copts = ["-Isrc/project/common/include"],
)
иBUILD
(# 2), который определяет модуль зависимостиdata_type
это так
cc_library(
name = "data_type",
hdrs = ["include/common/data_type.hpp"],
visibility = ["//visibility:public"],
)
Однако, когда я построил код, я получил
src/project/model/include/model/modelA.hpp: fatal error: common/data_type.hpp: No such file or directory
Почему я определилcopts = ["-Isrc/heimdallr/common/include"]
но все еще есть эта ошибка?
1 ответ
Пожалуйста, проверьте раздел проверки включения заголовковправил C/C++ из документа Bazel. Относительно каталога рабочей области должны быть созданы все включаемые пути. Пожалуйста, обратитесь к этому вопросу для получения дополнительной информации. Спасибо!