我有一个新的项目,我正试图与OASIS一起编译。我所有的软件包,除了一个安装了opam。
我的_oasis文件如下所示:
(* 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给了我这个结果:
findlib: [WARNING] While parsing 'path_to_my_local_package/META.in':
The `directory' directive is required in this META definitionocamlfind query mylocalpackage给了我这个结果:
ocamlfind: Package `mylocalpackage' not found我不知道是否应该在_oasis中编写这个包,或者改变OCAMLPATH变量是否是解决方案。但如果是的话,我不明白这个警告。
复制步骤
对于那些想尝试的人来说:
_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:最佳ocamlfind: Package 'why3' not found发布于 2018-05-31 19:27:05
嗯,这是你正在尝试的一种非常不标准的方法。不确定,为什么你需要它,因为通常它是更好的安装软件包。无论如何,当您使用OCAMLPATH变量时,您需要将一个路径传递给lib文件夹,其中包含分别包含META文件的文件夹。我有以下存储库结构:
.
├── proj
└── why3-0.88.3在proj文件夹中,我使用以下OCAMLPATH运行configure脚本:
OCAMLPATH=../why3-0.88.3/lib/:$OCAMLPATH ./configure在此之后,一切都正常,您甚至不需要将OCAMLPATH变量传递到编译、链接或执行阶段。
https://stackoverflow.com/questions/50566938
复制相似问题