apollo如何添加第三方库,以pylon为例
1.在apollo/third_party/ 里面增加pylon文件夹
workspace.bazel
"""Loads the OpenCV library"""# Sanitize a dependency so that it works correctly from code that includes
# Apollo as a submodule.
def clean_dep(dep):return str(Label(dep))def repo():native.new_local_repository(name = "pylon",build_file = clean_dep("//third_party/pylon:pylon.BUILD"),path = "/apollo/third_party/pylon/pylon_6.2",)
pylon.BUILD
#TODO(storypku): split opencv into seperate components to speed up build
# e.g., opencv_imgproc/opencv_highgui/...cc_library(name = "pylon",srcs = glob(["lib/*.so*"]),hdrs = glob(["include/**/*.hpp","include/**/*.h"]),includes = ["include"],visibility = ["//visibility:public"], linkstatic = 1,
)
BUILD
package(default_visibility = ["//visibility:public"],
)
注意!
要在apollo/tools/workspace.bzl里面添加两行内容:
load("//third_party/pylon:workspace.bzl", pylon = "repo")
在def initialize_third_party()函数中增加pylon()
# Apollo external dependencies that can be loaded in WORKSPACE files.
load("//third_party/pylon:workspace.bzl", pylon = "repo")
load("//third_party/absl:workspace.bzl", absl = "repo")
load("//third_party/adolc:workspace.bzl", adolc = "repo")
load("//third_party/adv_plat:workspace.bzl", adv_plat = "repo")
load("//third_party/ad_rss_lib:workspace.bzl", ad_rss_lib = "repo")
load("//third_party/atlas:workspace.bzl", atlas = "repo")
load("//third_party/benchmark:workspace.bzl", benchmark = "repo")
load("//third_party/boost:workspace.bzl", boost = "repo")
load("//third_party/civetweb:workspace.bzl", civetweb = "repo")
load("//third_party/cpplint:workspace.bzl", cpplint = "repo")
load("//third_party/eigen3:workspace.bzl", eigen = "repo")
load("//third_party/ffmpeg:workspace.bzl", ffmpeg = "repo")
load("//third_party/fftw3:workspace.bzl", fftw3 = "repo")
load("//third_party/fastrtps:workspace.bzl", fastrtps = "repo")
load("//third_party/glog:workspace.bzl", glog = "repo")
load("//third_party/gtest:workspace.bzl", gtest = "repo")
load("//third_party/gflags:workspace.bzl", gflags = "repo")
load("//third_party/ipopt:workspace.bzl", ipopt = "repo")
load("//third_party/local_integ:workspace.bzl", local_integ = "repo")
load("//third_party/libtorch:workspace.bzl", libtorch_cpu = "repo_cpu", libtorch_gpu = "repo_gpu")
load("//third_party/lz4:workspace.bzl", lz4 = "repo")
load("//third_party/ncurses5:workspace.bzl", ncurses5 = "repo")
load("//third_party/nlohmann_json:workspace.bzl", nlohmann_json = "repo")
load("//third_party/npp:workspace.bzl", npp = "repo")
load("//third_party/opencv:workspace.bzl", opencv = "repo")
load("//third_party/opengl:workspace.bzl", opengl = "repo")
load("//third_party/openh264:workspace.bzl", openh264 = "repo")
load("//third_party/osqp:workspace.bzl", osqp = "repo")
load("//third_party/poco:workspace.bzl", poco = "repo")
load("//third_party/portaudio:workspace.bzl", portaudio = "repo")
load("//third_party/proj:workspace.bzl", proj = "repo")
load("//third_party/protobuf:workspace.bzl", protobuf = "repo")
load("//third_party/qt5:workspace.bzl", qt5 = "repo")
load("//third_party/sqlite3:workspace.bzl", sqlite3 = "repo")
load("//third_party/tinyxml2:workspace.bzl", tinyxml2 = "repo")
load("//third_party/uuid:workspace.bzl", uuid = "repo")
load("//third_party/yaml_cpp:workspace.bzl", yaml_cpp = "repo")
# load("//third_party/glew:workspace.bzl", glew = "repo")load("//third_party/gpus:cuda_configure.bzl", "cuda_configure")
load("//third_party/py:python_configure.bzl", "python_configure")
load("//third_party/tensorrt:tensorrt_configure.bzl", "tensorrt_configure")
load("//third_party/vtk:vtk_configure.bzl", "vtk_configure")
load("//third_party/pcl:pcl_configure.bzl", "pcl_configure")def initialize_third_party():""" Load third party repositories. See above load() statements. """pylon()absl()adolc()adv_plat()ad_rss_lib()atlas()benchmark()boost()cpplint()civetweb()eigen()fastrtps()ffmpeg()fftw3()gflags()glog()gtest()ipopt()local_integ()libtorch_cpu()libtorch_gpu()lz4()ncurses5()nlohmann_json()npp()opencv()opengl()openh264()osqp()poco()portaudio()proj()protobuf()qt5()sqlite3()tinyxml2()uuid()yaml_cpp()# Define all external repositories required by
def apollo_repositories():cuda_configure(name = "local_config_cuda")tensorrt_configure(name = "local_config_tensorrt")python_configure(name = "local_config_python")vtk_configure(name = "local_config_vtk")pcl_configure(name = "local_config_pcl")initialize_third_party()
在终端输入此行命令检查该库是否增加成功:
ls $(bazel info output_base)/external
可以看到@pylon.marker 和 pylon,说明第三方库已经被增加到bazel里面了。
期间,注意pylon的路径问题,路径出错可是在构建过程中并没有报错,导致一直不成功也没发现原因,后来单独编译此包时发现路径错误,添加正确路径后即可添加成功。
./apollo.sh build_opt
./apollo.sh clean
Usage:/apollo/scripts/apollo_clean.sh [options]
Options:--bazel Remove bazel output--core Remove coredump files--log Remove log files-a, --all Equivalent to "--bazel --core --log"--expunge Run "bazel clean --expunge"-h, --help Show this message and exit可以通过./apollo.sh clean --expunge 去掉bazel第三方库依赖,
再 ./apollo.sh build_opt 可以重新构建bazel第三方库依赖。或许有更简单的方法,欢迎分享。
参考自 https://github.com/ApolloAuto/apollo/blob/master/docs/howto/how_to_add_an_external_dependency.md
apollo如何添加第三方库,以pylon为例相关推荐
- VS2010中添加第三方库目录VC++ Directories
VS2010取消了08之前在options里面添加第三方库目录的设置,新的设置方法如下: View->Property Manager, 在Property Manager框里面有Debug|W ...
- AndroidStudio权威教程 AS添加第三方库的6种方式(Jar module so等)
点击项目设置按钮 依次选择 App > Dependencies 1. 直接搜索法 依次选择 + > Library dependency 这里的搜索一定要是全名的,不然搜不到哦 下图所表 ...
- VS中添加第三方库及相对路径设置
原文 VS中添加第三方库及相对路径设置 对于一些第三方的SDK,一般会包含头文件(*.h),静态库文件(*.lib)和动态库文件(*.dll). 1. 文件位置:为了提高程序的可移植性,将第三库放在 ...
- [Ubuntu] apt 添加第三方库
1. 方法一:直接在 /etc/apt/sources.list 添加第三方库. $ sudo vi /etc/apt/sources.list在其中添加:deb http://archive.scr ...
- 如何安装CocoaPods,以便在Xcode中快速添加第三方库
文章目录 1. 安装CocoaPods 2. 用CocoaPods来添加第三方库 CocoaPods 是一个负责管理 Xcode项目中第三方开源库的工具.CocoaPods项目源码 通过 CocoaP ...
- 面向小白visual studio 2019 添加第三方库教程
虽然我是个linux程序员,但偶尔会在windows上借用visual studio写点demo,因为比较方便,所以今天就教大家如何添加第三方库编写自己的demo程序. 1.项目–>属性 2.C ...
- python添加第三方库
一.pycharm交互操作添加第三方库 1.进去settings设置 2.检查环境中是否有lib 找到project interpreter 右边点击settings按钮 选择show all 确认环 ...
- 编译tolua——3、以pbc为例子,添加第三方库
目录 1.编译工具和环境说明 2.基础编译tolua 3.以pbc为例子,添加第三方库 4.更新luaJit 大家好,我是阿赵. 之前分享过怎样正常编译基础版本的tolua.这次用添加pbc为例,看看 ...
- 百度Apollo自定义安装第三方库(以libtorch为例)
百度Apollo是一个非常优秀的自动驾驶框架,但我们平时在开发中也会遇到各种原repo没有处理的问题.笔者近期想用pytorch的C++前端推理模型,但是遇到了libtorch版本与pytorch版本 ...
最新文章
- 【c语言】蓝桥杯基础练习 01字串
- 简述JavaME,JavaSE,JavaEE
- Additive属性动画
- matlab用辛普森公式求积分_如何用Excel公式求最大值对应的行列序号
- Delphi下载指定网址(URL)的文件,带进度条显示
- BugKuCTF WEB 矛盾
- SVN merge(合并) 的三种方式
- java tcp ack_TCP三次握手和四次挥手以及11种状态
- SAS之COMPBL、DEQUOTE函数
- MS SQL 日常维护管理常用脚本(二)
- 让我小猪佩奇教你如何进行潇洒装逼
- Endnote X8激活注册信息
- windows server 2008 R2开启ftp服务
- 一级倒立摆matlab仿真,一级倒立摆的Simulink仿真
- 关于NuDaqPci 数据采集
- (一)WLAN定义和基本架构
- 新车磨合应该从正确启动发动机开始
- 大数据在生活中有哪些应用举例?大数据好找工作吗?
- HTPPS加密对网站有什么好处
- 马云的创业故事及他人生中的摆渡人-微信的兴起和支付宝的至暗时刻(十)