使用bazel引入matplotlibcpp第三方库

目录

1.GitHub下载matplotlibcpp的源码

2.把源码中的matplotlibcpp .h拷贝到工程中

3.完善引用第三方库的BUILD文件

4.在WORKSPACE中添加对系统中python的依赖

5.系统中找不到numpy/arrayobject.h头文件


1.GitHub下载matplotlibcpp的源码

matplotlib-cpp/examples/nonblock.cpp at docs · Cryoris/matplotlib-cpp

2.把源码中的matplotlibcpp .h拷贝到工程中

放到工程中,如下

3.完善引用第三方库的BUILD文件

load("@rules_cc//cc:defs.bzl", "cc_library")
package(default_visibility = ["//visibility:public"])

cc_library(
    name = "path_planning_lib",
    srcs = ["path_planning.cc"],
    hdrs = [
        "path_planning.h",
        "matplotlibcpp.h",

        ],
    deps = [
        "//reference_line:reference_line_lib",
        "//path_planning/path_convex_space:path_convex_space_lib",
        "//path_planning/path_qp_optimize:path_qp_lib",
        "//path_planning/common:vehicle_lib",

        "@system_python//:python36-lib",
    ],
    copts = ["-I/usr/include/python3.6/"],
)

在path_planning下,完善其BUILD文件:
        1.hdrs(头文件)中加入“matplotlibcpp.h”

        2.deps(依赖文件)中加入“@system_python//:python36-lib"(系统中存在的python文件,并已经在下述的WORKSPACE中引入(即将系统的python放入沙盒中))

        3.copts(编译参数)中添加编译器将要使用到的头文件"-I/usr/include/python3.6/"

4.在WORKSPACE中添加对系统中python的依赖

WORKSPACE中可以为bazel引入外部依赖。当WORKSPACE为空时,将不引入外部依赖。由于在编译时,bazel会将编译所需要用到的内容放入一个沙盒(sandbox)中。所以我们需要告知bazel我们也需要系统中的python,方式如下:

new_local_repository(
    name = "system_python",
    path = "/usr/lib/python3.6/config-3.6m-x86_64-linux-gnu", # Figure out where it is on your system, this is where it is on mine
    build_file_content = """
cc_library(
   name = "python36-lib",
   srcs = ["libpython3.6.so"],
   visibility = ["//visibility:public"],
)
""",
)

使用bazel提供的new_local_repository(name, path, build_file_content)函数,将系统的python引入。

5.系统中找不到numpy/arrayobject.h头文件

报错如下图:

解决方案:

1.确认python已安装numpy库

2.找到numpy库的头文件路径

3.将此头文件路径 链接 至/usr/include/xxx(系统级头文件) 路径下

4.至此,可以正常在C++程序中,像引用stdio.h一样,引用该头文件

转载请注明出处:https://blog.csdn.net/betterthanYSD/article/details/134075196

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值