关于hal:Android.bp:如何添加外部标头.h文件 |
您所在的位置:网站首页 › 怎么引入头文件 › 关于hal:Android.bp:如何添加外部标头.h文件 |
我有一个与如何在bazel / tensorflow构建期间添加外部头文件类似的问题。 但我希望有更好的解决方案。 我有一个在其他位置需要一些外部.h头文件的模块。 假设我尝试包含" vendor / external / include / thirdpary.h",在Android.bp中,我添加了一些类似于: 123include_dirs: [ "vendor/external/include", ]但是当我将其包含在CPP文件中时,编译器抱怨该文件不存在: 1#include"thirdpary.h"使用include_dirs是正确的方法。根据您在描述中所写的内容,它应该可以工作。 以下是一些有关错误检查的建议: vendor/external/include实际上是$ANDROID_BUILD_TOP的子文件夹吗? 必须相对于AOSP根目录指定include_dirs中的目录。如果路径相对于Android.bp,则必须使用local_include_dirs。 12345cc_binary { name:"my-module", srcs: ["main.cpp" ], include_dirs: ["vendor/external/include" ] }cpp文件是否在与include_dirs相同的模块定义的srcs列表中? 如果要从模块所依赖的库继承include目录,则该库应使用export_include_dirs。 12345678910cc_library { name:"my-library", export_include_dirs: ["include" ] } cc_binary { name:"my-module", srcs: ["main.cpp" ], static_libs: ["my-library"] }构建模块时,将向编译器提供哪些包含目录? 重建模块并检查-I选项。 12m my-module | grep"main.cpp" | sed 's/-I/\ -I/g'在上面的代码" thirdpary.h"文件中将不会被引用或包含,这就是为什么出现上述问题的原因。 因此,要解决上述问题,请给出相对路径。 像下面的代码片段: 如果dir结构中的头文件路径为: com/example/abc/header.h 像这样并在实施中(如果仅使用 #include"thirdpary.h" 那么您需要提供路径,直到头文件目录。 123include_dirs: [ "vendor/external/include/com/example/abc", ]希望这能解决问题。 只需通过以下方式包含库的头文件 1#include"/path/to/library/header.h"然后在* .pro文件中使用LIBS。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |