ocamlbuild;建筑顶层

2024-01-01

已成功使用子目录重新组织了我的 ocamlbuild 项目 https://stackoverflow.com/questions/2209532/properly-compiling-modules-in-subfolders-ocamlbuild使用 ocamlfind,我发现很难构建顶层。

我构建了一个.mltop包含所有要包含的模块的文件并将包添加到_tags,但构建不起作用。它找不到使用模块之一编译的 C 函数。和-classic-display上,我可以看到该文件,libcside.a,没有被包含,甚至根本没有被编译! c 文件作为依赖项添加到myocamlbuild.ml by,

flag ["link"; "ocaml"; "use_cutil"] (S [A"-cclib"; A"-L."; ]);
dep  ["link"; "ocaml"; "use_cutil"] ["libcside.a"];

and in _tags,

<utilities.*> : use_cutil
<**/*.top> : use_str, use_unix, use_cutil, use_curl, use_mysql

最后,在libcside.clib,

cutil.o

我在设置顶层构建时遗漏了一些东西,但我无法在网上找到可靠的资源。谢谢。


  • 我认为 cutil.ml 描述了 libcs​​ide.a 的 ocaml 方面 - 正确吗?
  • 你把Cutil放入mltop了吗?
  • 使用您当前的插件 cutil ocaml 库将不会链接 libcs​​ide.a (dep仅指示 ocamlbuild 构建它,而不是链接)
  • 这是使用 C 存根构建项目本地 ocaml 库的简单(且有效)方法。在 myocamlbuild.ml 中:

    ocaml_lib "linuxnet";
    let liblinuxnet_stubs = "liblinuxnet_stubs." ^ !Options.ext_lib in
    flag ["link"; "ocaml"; "use_linuxnet"] (S[A"-cclib"; A liblinuxnet_stubs;]);
    dep  ["link"; "ocaml"; "use_linuxnet"] [liblinuxnet_stubs];
    

    在 liblinuxnet_stubs.club 中:

    linuxnet_c.o
    

    请注意,C 源代码被称为linuxnet_c.c这样生成的目标文件就不会覆盖 linuxnet.ml 中的目标文件(反之亦然)。最后在 _tags 中:

    true: use_linuxnet
    

    通过此设置,它将在顶层可用(请注意,无需将Linuxnet到 .mltop 中,因为 linuxnet.cma 将被添加到链接中use_linuxnet标志(生成于ocaml_lib用法))。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ocamlbuild;建筑顶层 的相关文章

  • 将 dll 注册到 GAC 或从 ASP.NET 中的 bin 文件夹引用它们是否更好

    如果答案是 视情况而定 您能否提供一个简短的解释 GAC 旨在包含以下组件跨多个应用程序共享 如果是这种情况 您应该对程序集进行强命名并向 GAC 注册 如果不是 请将程序集保留为私有程序集并将其作为项目 dll 引用进行引用 PS 没有真
  • 如何测试某些代码在 C++ 中无法编译? [复制]

    这个问题在这里已经有答案了 可能的重复 单元测试编译时错误 https stackoverflow com questions 605915 unit test compile time error 我想知道是否可以编写一种单元测试来验证给
  • 如何使用pyinstaller?

    好吧 我是一个完全的编程菜鸟 我正在尝试编译一个我编写的简单程序 该程序接受一个字符串并以莫尔斯电码打印该字符串 它被称为 morse py 我使用安装 pyinstaller pip install pyinstaller 我正在尝试使用
  • 如何将 CodeBlocks 与最新版本的 VC++ 编译器一起使用?

    我需要将 C B 与最新版本的 MS VC 编译器 例如 VS2015 或 VS2017 中的编译器 以及最终的未来版本一起使用 但 C B 不提供此类选项 C B 允许用户从设置中的列表中选择的最新 VC 版本是 VC 2010 MSVC
  • CMake:连续编译程序两次

    为了能够进行许多自动优化 我希望能够使用标志编译我的程序 fprofile generate首先 然后运行它生成配置文件 然后使用以下命令重新编译程序 fprofile use反而 这意味着我想连续编译我的程序两次 使用两个不同的CMAKE
  • 在 GNU C++ 编译器中运行具有多个源文件的程序

    我在 Windows 7 操作系统上使用 DEV GNU c 编译器 我需要知道如何编译具有多个源文件的程序 这是例子 FILE1 void f1 printf this is another file under same program
  • 自动部署资源

    我足够了解我们需要通过单个用户操作来部署我们的应用程序 但是 我don t know 在 NET 商店中可以使用哪些好工具 您如何管理每个环境的配置更改 有人可以给我指出一些用于持续集成的好资源吗 我希望看到一些理论以及逐步的实践指南 Ed
  • 为什么计算斐波那契数需要很长时间?

    几天前我开始学习Ocaml 我尝试编写一个斐波那契数字程序 let rec fib a if a 1 a 2 then 1 else fib a 1 fib a 2 该代码不是最佳的 因为我不知道如何处理异常情况 但现在 如果我尝试计算 f
  • “%d”需要“int”类型的参数,但参数 2 的类型为“long unsigned int”[-Wformat=] [重复]

    这个问题在这里已经有答案了 我不断收到编译警告 但我不知道如何解决它 d expects argument of type int but argument 2 has type long unsigned int 程序运行良好 但我仍然收
  • OCaml - 什么数据类型是 some 和 none?

    如果我正在使用Some and None列表中的组合 列表的数据类型是什么 是不是总是 a 或者有某种类型Some None let listVar type here list Some 4 Some 3 None Some 2 如果我把
  • 为什么 cmake 在 git commit 后编译所有内容

    假设我有时在 Linux 上使用 cmake 2 8 编译一段代码 我更改了一个文件 my changed file 运行 cmake 并且只构建了这个文件 到目前为止 一切都很好 现在我想提交这个 git add my changed f
  • 如何强制 Perl 按需重新编译使用“/o”编译的正则表达式?

    技术问题 给定一个正则表达式 my regEx qr whatever myVar oxi Notice o for compile once 强制重新编译的最有效方法是什么一经请求 例如 当我从程序逻辑中知道 myVar值改变 而不下降
  • 如何使用javac编译java包结构

    我正在尝试编译 从命令行 一个 java 包 该包导入我自己的另一个包 我正在关注一个在线教程 http www roseindia net java master java createsubpackage shtml但当我尝试编译最终的
  • 如何使用 VIM 进行 .Net 开发 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 您如何使编译器行更短?

    通常 当我与其他人一起处理一个项目时 随着时间的推移 编译器在 Makefile 中获取的库路径和包含路径的数量会变得越来越多 此外 路径也可能会变得很长 这是一个例子 g c pipe O2 Wall W DQT BOOTSTRAPPED
  • 当我调试 ASP.NET MVC 应用程序时,为什么不触发 Application_Start() 事件?

    我目前有以下例程Global asax cs file public static void RegisterRoutes RouteCollection routes routes IgnoreRoute resource axd pat
  • 将所有代码放入 C++ 头文件中的优点和缺点?

    您可以构造一个 C 程序 以便 几乎 所有代码都驻留在头文件中 它本质上看起来像一个 C 或 Java 程序 但是 您至少需要一个 cppfile 来在编译时拉入所有头文件 现在我知道有些人绝对会讨厌这个想法 但我还没有发现这样做有任何令人
  • Node.js 10 的 TypeScript tsconfig 设置?

    有谁知道 Node js v10 x 需要哪些目标 库才能在没有生成器的情况下使用内置的 async await 我看到很多关于节点 8 的信息 但没有看到关于节点 10 的信息 从 Node js 开始10 0 0 100 支持ES201
  • 检查 ocaml 中可变列表是否有循环?

    我正在尝试编写一个函数来测试 Ocaml 中的可变列表是否包含循环 即 具有对其自身的引用并连续重复 我的列表定义为type a m list Nil Cons of a a m list ref 到目前为止 我有 let is cycli
  • 构建自动化和 MySQL Workbench 脚本:正向工程师 SQL CREATE SCRIPT

    我目前正在研究自动化软件构建过程 其中包括 MySQL Workbench 中定义的数据库架构 使用 Workbench 的脚本编写功能 我想打开一个 Workbench 文档并将其架构导出为 SQL CREATE 脚本 我想知道是否有一个

随机推荐