通过机器人代码使用外部库

警告

使用外部库可能会对您的机器人代码产生意想不到的行为!除非您知道自己在做什么,否则不建议这样做!

通常,团队可能希望添加外部Java或C ++库,以用于其机器人代码。本文重点介绍将Java库添加到您的Gradle依赖项或C ++团队具有的选项。

Java

备注

任何依赖于本机库(JNI)的外部依赖关系都可能无法正常工作。

Java添加外部依赖项非常简单。您只需添加所需的``存储库’’和``依赖项’’即可。

机器人项目默认情况下在build.gradle文件中没有repository {}块。您将必须自己添加。在“ dependencies {}”块上方,请添加以下内容:

repositories {
   mavenCentral()
   ...
}

可以将mavenCentral()替换为要导入的库使用的任何存储库。现在,您必须添加对库本身的依赖关系。这是通过在“ dependencies {}”块中添加必要的行来完成的。以下示例展示了如何将Apache Commons添加到您的Gradle项目中。

dependencies {
   implementation 'org.apache.commons:commons-lang3:3.6'
   ...
}

现在,您运行一个构建并确保已下载依赖项。在运行构建之前,Intellisense可能无法正常工作!

C++

由于需要为roboRIO进行编译,因此向您的机器人项目中添加C ++依赖项并非易事。您有两种选择。

  1. 将所需库的源代码复制到您的机器人项目中。

  2. 以`vendordep模板<https://github.com/wpilibsuite/vendor-template>`__为例,并创建一个vendordep。

复制源代码

只需将必要的源代码和/或标题复制到您的机器人项目中。然后,您可以配置任何必要的平台参数,如下所示:

nativeUtils.platformConfigs.named("linuxx86-64").configure {
   it.linker.args.add('-lstdc++fs') // links in C++ filesystem library
}

创建一个Vendordep

请按照“ vendordep存储库<https://github.com/wpilibsuite/vendor-template>” __中的说明进行操作。