首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ocamlbuild指定输出位置/名称

ocamlbuild指定输出位置/名称
EN

Stack Overflow用户
提问于 2015-06-03 11:45:01
回答 2查看 807关注 0票数 1

是否可以使用ocamlbuild工具指定生成位置和文件名?我想(用伪码)说:

代码语言:javascript
复制
ocamlbuild myapp.ml -b native -o bin/myapp
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-06-03 13:00:20

没有这样的选项,但是ocamlbuild是可扩展的,允许您使用Options.add添加自己的选项。当然,您还需要添加一些实现。基本上,劫持native规则并通过安装过程对其进行扩展可能是可行的。要扩展ocamlbuild,您应该创建一个插件(其他选项是创建您自己的独立可执行文件,并使用它而不是ocamlbuild,这就是我们在项目中所做的)。

但在大多数情况下,使用ocamlfindoasis等标准工具就足够了。我建议考虑后者,因为它是较高的水平。

绿洲

使用oasis,您需要编写一个简单的_oasis文件(或者使用oasis quickstart交互地编写它)。最小文件应该如下所示:

代码语言:javascript
复制
OASISFormat: 0.4
Name:        myapp
Version:     0.0.1
Synopsis:    My first application in oasis
Authors:     Authors list
Maintainers: Maintainer Name 
License:     MIT
Copyrights:  (C) Copyright Holder
Plugins:     META (0.4), DevFiles (0.4)
BuildTools: ocamlbuild

Executable "myapp"
  Path:           .
  MainIs:         myapp.ml
  Install:        true
  CompiledObject: best

文件完成后,运行

代码语言:javascript
复制
oasis setup

它将生成Makefileconfigure脚本。跑

代码语言:javascript
复制
./configure

和往常一样检查和设置您的环境。例如,./configure --prefix=$HOME将设置您的构建系统以安装到您的主文件夹中(例如,将可执行文件安装到~/bin,等等)。我通常更喜欢安装在opam堆栈上,并使用./configure --prefix=$(opam config var env)

最后,通常的一对

代码语言:javascript
复制
make && make install 

就能完成任务了。

OCamlfind

ocamlfind仍然需要您编写元文件。通常,他们只是通过复制、粘贴和编辑现有项目中的元文件来编写它们。但是写一个并不难,因为它是非常好的记录在案

在编写了元之后,您可以使用ocamlfind install子命令,它有一个-destdir选项。

但是ocamlfind不处理可执行文件,只处理库。所以这可能不适合你。

票数 2
EN

Stack Overflow用户

发布于 2015-06-03 12:12:57

进入ocamlbuild --help后,我找不到这样的选项。

一种解决方案是编写一个脚本,这样做:

代码语言:javascript
复制
#!/bin/bash 

ocalmbuild myapp.native // build your executable
mv myapp.native bin/myapp // rename it

编辑:

根据ivg的建议,您应该将mv myapp.native bin/myapp行替换为cp -L myapp.native bin/myapp

也许有人可以给出这个选项,我觉得很有趣,但是在用户手册中没有。因此,一个解决方案是使用脚本。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30619162

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档