Ocaml 安装旧的活动网络语言计划

Ocaml 安装旧的活动网络语言计划,ocaml,camlp4,Ocaml,Camlp4,有人能帮我解释一下吗?我正在尝试安装PLAN(一种用于活动网络的数据包语言)。从Mac OS X 10.8.4上的我的终端: hntvlan569:~ Scott_Andrew_Collins$ cd OCamlPLAN hntvlan569:OCamlPLAN Scott_Andrew_Collins$ cd plan-3.22/ hntvlan569:plan-3.22 Scott_Andrew_Collins$ make ocamlc.opt -pp "camlp4o pa_ifdef.c

有人能帮我解释一下吗?我正在尝试安装PLAN(一种用于活动网络的数据包语言)。从Mac OS X 10.8.4上的我的终端:

hntvlan569:~ Scott_Andrew_Collins$ cd OCamlPLAN
hntvlan569:OCamlPLAN Scott_Andrew_Collins$ cd plan-3.22/
hntvlan569:plan-3.22 Scott_Andrew_Collins$ make
ocamlc.opt -pp "camlp4o pa_ifdef.cmo -DPLAN_UNSAFE -DPLANPORT_TCP -DC_CRYPTO" -w s 
-thread -I basis -I interpreter -I planet -I port -I util -I RIP -I resident -I 
arp -I csum -I frag -I net -I reliable -I dns -I exp -I flow -I security -I 
crypto -I builder -I snap -I apps -I common -c common/critical.ml -o 
common/critical.cmo Camlp4: Uncaught exception: DynLoader.Error ("pa_ifdef.cmo", 
"file not found in path")

Error while running external preprocessor
Command line: camlp4o pa_ifdef.cmo -DPLAN_UNSAFE -DPLANPORT_TCP -DC_CRYPTO
'common/critical.ml' > 
/var/folders/pm/m53jrwbd10x0q701d7sw2zrw0000gp/T/ocamlpp9101d0

make: *** [common/critical.cmo] Error 2

您没有说您正在使用的OCaml版本

缺少的文件pa_ifdef.cmo(可能很明显)是camlp4的预处理插件。通过查看我系统上的OCaml版本,我发现它在OCAML3.12下存在(可能以不受支持的形式存在),但在OCAML4中不存在(除非我不知何故错过了它)。我怀疑对这个插件的支持已经被放弃了

我自己也用过这个插件;它的用途与C预处理器cpp大致相同。也就是说,它根据编译时提供的标志测试进行条件编译

近年来,我很幸运没有条件编译,所以我不知道这个工具的最新状态。但如果有一个类似的插件可以与最新的OCaml编译器一起使用,我一点也不会感到惊讶。因此,一个解决方案是研究最新的camlp4并找到替代品

如果编译时条件在源代码中没有广泛使用,您也可以检查并删除它们


另一种选择是使用较旧版本的OCaml进行编译。

GooglePlan。你可能会觉得很有趣。