首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用外部库编译(OASIS,OCamlfind)

用外部库编译(OASIS,OCamlfind)
EN

Stack Overflow用户
提问于 2018-05-28 12:51:01
回答 1查看 214关注 0票数 2

我有一个新的项目,我正试图与OASIS一起编译。我所有的软件包,除了一个安装了opam。

我的_oasis文件如下所示:

代码语言:javascript
复制
(* usual package fields *)

Executable myexe
  Path:       src
  BuildTools: ocamlbuild
  MainIs:     myexe.ml
  BuildDepends:
        some_packages_installed_with_opam
        mylocalpackage

我试过oasis setup,然后./configure,但是OCamlfind回答说它找不到mylocalpackage。因此,我决定查看OCamlfind查找包的位置,并发现可以设置一个OCAMLPATH变量来添加安装包的目录。所以我做了export OCAMLPATH=path_to_mylocalpackage:$OCAMLPATH,然后再试一次。

oasis setup给了我这个结果:

代码语言:javascript
复制
findlib: [WARNING] While parsing 'path_to_my_local_package/META.in': 
         The `directory' directive is required in this META definition

ocamlfind query mylocalpackage给了我这个结果:

代码语言:javascript
复制
ocamlfind: Package `mylocalpackage' not found

我不知道是否应该在_oasis中编写这个包,或者改变OCAMLPATH变量是否是解决方案。但如果是的话,我不明白这个警告。

复制步骤

对于那些想尝试的人来说:

  • 下载why3
  • /配置--启用-本地制造
  • 使用此_oasis文件创建一个新项目 OASISFormat: 0.4名称: myexe版本:0.1个概要:测试文件作者: SO许可:CC NC-SA插件: StdFiles (0.4),DevFiles (0.4)字母功能: ocamlbuild_more_args XOCamlbuildExtraArgs:-use ocamlfind Executable myexe路径: src BuildTools: ocamlbuild : myexe.ml BuildDepends: unix,str,num,dynlink,zip,menhirLib,why3 NativeOpt:-dtypes -g -annot ByteOpt:-dtypes -g -annot CompiledObject:最佳
  • oasis设置./配置
  • 您应该有以下错误:ocamlfind: Package 'why3' not found
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-31 19:27:05

嗯,这是你正在尝试的一种非常不标准的方法。不确定,为什么你需要它,因为通常它是更好的安装软件包。无论如何,当您使用OCAMLPATH变量时,您需要将一个路径传递给lib文件夹,其中包含分别包含META文件的文件夹。我有以下存储库结构:

代码语言:javascript
复制
.
├── proj
└── why3-0.88.3

proj文件夹中,我使用以下OCAMLPATH运行configure脚本:

代码语言:javascript
复制
OCAMLPATH=../why3-0.88.3/lib/:$OCAMLPATH ./configure

在此之后,一切都正常,您甚至不需要将OCAMLPATH变量传递到编译、链接或执行阶段。

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

https://stackoverflow.com/questions/50566938

复制
相关文章

相似问题

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