首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在ocamlbuild中包含来自另一个目录的依赖项?

在ocamlbuild中包含来自另一个目录的依赖项可以通过使用ocamlbuild的plugins来实现。插件是一种提供自定义构建规则的方式,可以通过在构建流程中执行任意命令来处理依赖项。

以下是一种将另一个目录的依赖项包含到ocamlbuild中的方法:

  1. 创建一个名为"my_plugin.ml"的插件文件,内容如下:
代码语言:txt
复制
open Ocamlbuild_plugin

let include_other_dir (tags: string list) (path: string) (dep: string) : string =
  let full_path = path ^ "/" ^ dep in
  let new_tags = tags @ ["my_plugin"] in
  let rule = (dep ^ ".native") :: new_tags in
  rule, full_path

let () =
  dispatch begin function
    | After_rules ->
      let path = "<其他目录的路径>" in
      let dep = "<依赖项>" in
      dep |> include_other_dir ["ocaml"; "byte"; "program"] path |> rule
    | _ -> ()
  end
  1. 在你的工程目录中,创建一个"_tags"文件,内容如下:
代码语言:txt
复制
<依赖项>: use_my_plugin
  1. 编译你的工程:
代码语言:txt
复制
$ ocamlbuild <目标文件>.native

这将会使用自定义插件来处理来自另一个目录的依赖项。你可以根据实际情况修改插件文件中的路径和依赖项,使其适应你的工程。

注意:由于ocamlbuild是一个可扩展的构建系统,这种方法可能并不是所有情况下都适用。根据你的实际需求,你可能需要进行更多的自定义修改。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

如何在 WPF 中获取所有已经显式赋过值的依赖项属性

获取 WPF 的依赖项属性的值时,会依照优先级去各个级别获取。这样,无论你什么时候去获取依赖项属性,都至少是有一个有效值的。有什么方法可以获取哪些属性被显式赋值过呢?...如果是 CLR 属性,我们可以自己写判断条件,然而依赖项属性没有自己写判断条件的地方。 本文介绍如何获取以及显式赋值过的依赖项属性。...---- 需要用到 DependencyObject.GetLocalValueEnumerator() 方法来获得一个可以遍历所有依赖项属性本地值。...因此,你不能在这里获取到常规方法获取到的依赖项属性的真实类型的值。 但是,此枚举拿到的所有依赖项属性的值都是此依赖对象已经赋值过的依赖项属性的本地值。如果没有赋值过,将不会在这里的遍历中出现。...欢迎转载、使用、重新发布,但务必保留文章署名 吕毅 (包含链接: https://blog.walterlv.com ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。

21040
  • 如何在 Windows 上安装 Angular:Angular CLI、Node.js 和构建工具指南

    Angular CLI, Node.js, and Build Tools,作者为Ahmed Bouchefra 在本教程中,我们将学习如何在 Windows 中安装 Angular CLI 并使用它来创建...build (b): 将 Angular 应用程序编译到给定输出路径上名为 dist/ 的输出目录中。必须从工作空间目录中执行。 config: 检索或设置 Angular 配置值。...run: 运行项目中定义的自定义目标。 serve (s): 构建并服务您的应用程序,根据文件更改进行重建。 test (t): 在项目中运行单元测试。 update: 更新您的应用程序及其依赖项。...的配置文件 angular.json:包含 CLI 的配置 package.json:包含项目的基本信息(名称、描述和依赖项) README.md:包含项目描述的 markdown 文件 tsconfig.json...结论 在本教程中,我们了解了如何在 Windows 计算机上安装 Angular CLI,并使用它从头开始初始化一个新的 Angular 项目。

    61500

    Spring 和 SpringBoot 之间到底有啥区别?

    它包含一些很好的功能,如依赖注入和开箱即用的模块,如:SpringJDBC、SpringMVC、SpringSecurity、SpringAOP、SpringORM、SpringTest,这些模块缩短应用程序的开发时间...另一个很好的例子就是测试库。我们通常使用 SpringTest, JUnit, Hamcrest和 Mockito库。在 Spring项目中,我们应该将所有这些库添加为依赖项。...但是在 SpringBoot中,我们只需要添加 spring-boot-starter-test依赖项来自动包含这些库。 Spring Boot为不同的Spring模块提供了许多依赖项。...Bootweb starter来自动包含的。...这意味着 SpringBoot将查看应用程序中存在的依赖项,属性和 bean,并根据这些依赖项,对属性和 bean进行配置。

    4.7K10

    Spring 和 SpringBoot 最核心的 3 大区别,详解!

    它包含一些很好的功能,如依赖注入和开箱即用的模块,如: SpringJDBC、SpringMVC、SpringSecurity、SpringAOP、SpringORM、SpringTest,这些模块缩短应用程序的开发时间...另一个很好的例子就是测试库。我们通常使用 SpringTest, JUnit, Hamcrest和 Mockito库。在 Spring项目中,我们应该将所有这些库添加为依赖项。...但是在 SpringBoot中,我们只需要添加 spring-boot-starter-test依赖项来自动包含这些库。 Spring Boot为不同的Spring模块提供了许多依赖项。...Bootweb starter来自动包含的。...这意味着 SpringBoot将查看应用程序中存在的依赖项,属性和 bean,并根据这些依赖项,对属性和 bean进行配置。

    1.5K30

    百度面试官:说说 Spring 和 Spring Boot 的区别是什么?

    它包含一些很好的功能,如依赖注入和开箱即用的模块,如: SpringJDBC、SpringMVC、SpringSecurity、SpringAOP、SpringORM、SpringTest,这些模块缩短应用程序的开发时间...另一个很好的例子就是测试库。我们通常使用 SpringTest, JUnit, Hamcrest和 Mockito库。在 Spring项目中,我们应该将所有这些库添加为依赖项。...但是在 SpringBoot中,我们只需要添加 spring-boot-starter-test依赖项来自动包含这些库。欢迎关注公号终码一生,每日分享技术干货。...Bootweb starter 来自动包含的。...这意味着 SpringBoot将查看应用程序中存在的依赖项,属性和 bean,并根据这些依赖项,对属性和 bean进行配置。

    73220

    详解Spring和SpringBoot的3大核心区别!

    它包含一些很好的功能,如依赖注入和开箱即用的模块,如: SpringJDBC、SpringMVC、SpringSecurity、SpringAOP、SpringORM、SpringTest,这些模块缩短应用程序的开发时间...另一个很好的例子就是测试库。我们通常使用 SpringTest, JUnit, Hamcrest和 Mockito库。在 Spring项目中,我们应该将所有这些库添加为依赖项。...但是在 SpringBoot中,我们只需要添加 spring-boot-starter-test依赖项来自动包含这些库。 Spring Boot为不同的Spring模块提供了许多依赖项。...Bootweb starter来自动包含的。...这意味着 SpringBoot将查看应用程序中存在的依赖项,属性和 bean,并根据这些依赖项,对属性和 bean进行配置。

    2.1K20

    2020年度最常见的Spring Boot面试题【附解析】

    16、如何在 Spring Boot 中禁用 Actuator 端点安全性? 17、我们如何监视所有 Spring Boot 微服务? 18、什么是 WebSockets?...27、如何重新加载 Spring Boot 上的更改,而无需重新启动服务器? 28、Spring Boot项目如何热部署? 29、您使用了哪些 starter maven 依赖项?...普通的 jar 包,解压后直接就是包名,包里就是我们的代码,而 Spring Boot 打包成的可执行 jar 解压后,在 \BOOT-INF\classes 目录下才是我们的代码,因此无法被直接引用。...Spring Boot 中如何实现定时任务 ? 定时任务也是一个常见的需求,Spring Boot 中对于定时任务的支持主要还是来自 Spring 框架。...在 Spring Boot 中使用定时任务主要有两种不同的方式,一个就是使用 Spring 中的 @Scheduled 注解,另一个则是使用第三方框架 Quartz。

    1.5K10

    Cypress系列(4)- 解析 Cypress 的默认文件结构

    默认就在 目录下,但也可以配置到另一个目录 cypress/fixtures 外部静态数据的详解 测试夹具的静态数据通常存储在 文件中,如自动生成的 examples.json .json 静态数据通常是某个网络请求对应的响应部分.../integration ,但也可以配置到另一个目录 测试文件格式 所有在 integration 文件下,且文件格式是以下的文件都将被 Cypress 识别为测试文件 :普通的JavaScript...编写的文件【最常用啦】 .js :带有扩展的 JavaScript 文件,其中可以包含处理 XML 的 ECMAScript .jsx :一套 JavaScript 转译的语言。...默认情况,插件位于 中,但可以配置到另一个目录 cypress/plugins/index.js 为了方便,每个测试文件运行之前,Cypress 都会自动加载插件文件 cypress/plugins...后面再详解插件在项目中的实际运用 support file 支持文件 简介 支持文件目录是放置可重用配置项,如底层通用函数或全局默认配置 支持文件默认位于 中,但可以配置到另一个目录 cypress

    2.5K20

    Go | 浅谈包管理模式

    go的编译器会在 $GOPATH/src 下面寻找对应的模块,src 下的每一个目录都可以对应一个模块,目录中的目录也可以是一个模块 下面展示如何在入口文件main.go 里引入非标准库model包中的变量...这种情况下可以分为两种情形: 当前目录在GOPATH/src之外且该目录包含go.mod文件 当前文件在包含go.mod文件的目录下面。...,没有的代表直接依赖, 前面是版本号+时间戳+hash(如:v0.0.0-20190620200207-3b0461eec859) go.mod文件一旦创建后,它的内容将会被go toolchain...语句可以替换依赖项模块 exclude 语句可以忽略依赖项模块 2、添加依赖 新建main.go文件 执行 go run main.go 一般来说 go mod 模式下,运行...go.sum文件是对导入的依赖包的特定版本的hash校验值,作用就是记录第一次下载的依赖版本号,防止有依赖版本升级带来的不兼容问题。所以,go.mod和go.sum文件都需要被加入版本管理中。

    52220

    Python项目打包成可执行文件的完整指南

    基本概念在讨论打包之前,了解以下几个基本概念非常重要:可执行文件:在Windows系统中,可执行文件通常是以“.exe”扩展名结尾的文件。它包含了可以直接运行的二进制代码。...依赖项:Python项目通常依赖于各种外部库或模块。这些依赖项在打包时需要一并包含,以确保可执行文件在没有Python环境的系统上也能运行。...cx_Freeze:cx_Freeze是另一个流行的打包工具。它也可以将Python脚本及其依赖项打包成可执行文件,并支持多个平台。...如果你不加这个选项,PyInstaller会将依赖项分散到多个文件夹中。4. 自定义打包配置如果你的项目有特定的需求,比如需要包含数据文件、图标或进行其他配置,可以使用.spec文件来自定义打包过程。...检查输出打包完成后,PyInstaller会在项目目录下生成一个dist文件夹,里面包含了生成的可执行文件。你可以在不同的系统上测试这个文件,确保它能正常运行。

    1.8K30

    鸿蒙开发 ArkTS 工程目录结构详解

    resources:用于存放应用的资源文件,可以细分为多个子目录:base:存放应用的基础资源,包括语言资源、样式资源等。element:定义了应用中的基础元素,如字符串、数字、颜色、样式等资源。...json5 是 JSON 的超集,允许更多的灵活配置,如注释和尾逗号。2. entry 目录entry 目录是开发的核心部分,包含了应用模块的源代码、资源、配置以及构建任务。...module.json5:模块的配置文件,包含了当前模块的基本配置信息,包括:模块名称、版本、依赖关系等。HAP 包的配置信息,描述了应用如何在目标设备上运行,以及不同设备之间的适配。...依赖项的版本以及依赖关系。类型声明文件的引用等。3. oh_modules 目录oh_modules 目录用于存放应用的第三方库依赖。...6. oh-package.json5(工程级)此文件用于全局配置,包含:overrides:依赖项的覆盖,允许为特定依赖项指定不同的版本。

    18400

    云课五分钟-03第一个开源游戏复现-贪吃蛇

    安装依赖:在Linux上编译和运行DungeonRush-master游戏可能需要一些依赖库和工具。请确保您的系统上已安装所需的依赖项。这些依赖项可能包括开发工具链、图形库、音频库等。...您可以查阅DungeonRush-master的文档或项目说明,了解并安装所需的依赖项。 编译游戏:一旦您获得源代码并安装了依赖项,接下来是编译游戏。...进入源代码目录,查找是否有编译脚本(如Makefile或CMakeLists.txt)。如果有,您可以使用相应的构建工具(如make或cmake)进行编译。...从你给出的文本中,我看到你提供了关于“DungeonRush”游戏的更多详细信息,包括如何在openSUSE和MacOS上安装依赖项,以及如何编译该游戏。...这些信息详细地介绍了游戏的特点和玩法,以及如何在不同的操作系统上安装游戏所需的依赖库,并提供了游戏的编译指南。

    34030

    90%的人都不知道的Node.js 依赖关系管理(上)

    此处可以看到module.exports的用法,该方法公开给定文件(appMsgs.js)中的属性或对象,这些属性或对象可以在另一个文件中使用。...每次函数调用都会执行此代码 下面是它如何在app.js文件中使用 ? 不需要调用属性,只需要像执行函数一样。与函数执行不同的是每次执行这个代码,函数中的代码都会被重新执行 下面是运行结果 ?...单个文件使用require很常见,但别忘了另一种模式:文件夹的之间的依赖关系 文件夹相关性 在正式介绍文件夹相关性之前,我们先来了解Nodejs如何查找依赖项,不要忽略前面例子中的这一内容: var appMsgs...原因是,我们可能正在组合一个复杂的依赖项,这个依赖项可能还有其他依赖项。而记录器的调用者不需要知道还有很多其他依赖项存在。...我们可以使用npm安装依赖项 npm install underscore; 然后可以在app.js中简单地require ? 我们可以看到标红位置如何使用下划线包提供的功能。

    1.7K20

    如何在Ubuntu 16.04上使用Concourse CI设置持续集成管道

    这会将我们的应用程序存储库资源中的uri和branch设置插入到第二个资源中。名为“paths”的附加元素指向package.json定义项目依赖项的文件。...注意:在此特定示例中,只有一个额外的作业,因此将Node.js依赖关系作为独立步骤缓存的好处尚未完全实现(将get语句添加到下面的测试作业就足以下载依赖项)。...但是,几乎所有使用Node.js的工作都需要项目依赖项,因此如果您有可能并行完成的单独作业,单独的依赖项缓存的好处将会体现出来。...这里,应用程序存储库将在hello_hapi目录下可用,并且Node.js依赖项将在名为dependency-cache的目录下可用。...我们运行的第一个命令将位于node_modules目录中的缓存依赖项从dependency-cache目录中移动到hello_hapi目录。

    4.3K20

    Gradle+Groovy基础篇

    与仅在Maven中添加依赖项相比,充分利用Gradle无疑具有更陡峭的学习曲线。但是向Gradle文件添加依赖项实际上并不比在Maven中困难。...该project对象是Project该类的实例,该类是构建的主要API父类。 如您所见,这些函数将一系列依赖项作为字符串传递。那么,为什么不使用更传统的静态数据结构(如JSON,属性或XML)呢?...您可能会看到的另一个依赖项配置是runtimeOnly和testRuntimeOnly。这声明了运行时提供的不需要对其进行编译的依赖项。 定义依赖关系的方法比对本文的范围有用的方法更多。...几乎可以说任何东西都可以是依赖项:本地文件,jar的目录,另一个Gradle项目等等,并且可以将依赖项配置为执行某些操作,例如排除某些子依赖项。...它将列出一棵树,其中包含项目所需的所有依赖关系(包括子依赖关系)。尝试gradle dependencies在项目根目录中运行。

    2.1K20
    领券