关于接口的不一致假设(Ocaml)建议我重建,我已经尝试过了,但没有结果。
我使用mac端口来管理我的大部分开发工具,自从升级到MacOS10.8.2之后,ocaml和ocaml-ounit之间似乎出现了糟糕的交互。
下面是一个非常小的shell转储,但问题是
错误:文件/opt/local/lib/ocaml/site-lib/oUnit/oUnit.cmxa和/opt/local/lib/ocaml/unix.cmxa对实现Unix做出了不一致的假设
正如http://www.puredarwin.org/developers/macports/port描述的那样,强迫重建似乎不能解决这个问题:
若要强制升级(重建),请使用: 端口-f升级vim
下面是我构建本机二进制文件的尝试的shell转储(.byte工作得很好,但我即将开始一轮分析并希望分析本机执行),以及我试图根据我的意愿弯曲mac端口的尝试。
任何关于如何进一步调查这个问题的想法都将不胜感激。我不希望自己从资源中构建ocaml,因为我希望能够将我的项目分发给同事,给他们提供最低限度的指导,说明他们需要做些什么才能启动和运行,所以我想尽可能地使用普通的包。
ocaml make.ml PegParserTest.native ocamlbuild \ -libs \-libs\num,str,unix,oUnit,-libs\ -cflags \ -g,-w,+a-4,-警告-错误,+a-4,-I,/opt/local/ocaml/site-lib/oUnit,-I,/opt/local/ocaml/site-lib/ocaml/site-lib/ocamlgraph\ -g,-I,/opt/local/lib/ocaml/site-lib/oUnit,-I,/opt/lib/ocaml/site-lib/ocamlgraph\ PegParserTest.native + /opt/local/bin/ocamlopt.opt -g -I /opt/local/lib/ocaml/site-lib/oUnit -I /opt/local/lib/ocaml/site-lib/ocamlgraph nums.cmxa str.cmxa unix.cmxa oUnit.cmxa graph.cmxa BinSearch.cmx ByteOutput.cmx ListUtil.cmx Stringer.cmx Range.cmx Unicode.cmx Stringer.cmx Utf8.cmxFailures.cmx Opt.cmx StringUtil.cmx Path.cmx UnicodeCategories.cmx UnicodeSeq.cmx GrammarParser.cmx AnnotationChecker.cmx ArrayUtil.cmx BitBucket.cmx Conv.cmx DefaultProductions.cmx Encodable.cmx Flatten.cmx Trie.cmx Flatten.cmx DefaultProductions.cmx DefaultProductions.cmx Encodable.cmx Flatten.cmx Followers.cmx en30 20 en22 en25 en27 en29 en31文件“#en33”,第1行:错误:文件/opt/local/lib/ocaml/site-lib/oUnit/oUnit.cmxa和/opt/local/lib/ocaml/unix.cmxa对代码2退出的Unix命令进行了不一致的假设。编译失败后,在00:00:00构建了154个目标(153个缓存)。> sudo端口selfupdate-->更新端口树-> MacPorts库已经是端口树已经更新的最新版本。要升级您安装的端口,您应该运行端口升级过时> sudo端口升级过时->自动删除的计算依赖项->更新二进制文件的数据库: 100.0% -->扫描链接错误的二进制文件: 100.0% -->没有找到损坏的文件。>端口内容ocaml \ grep -i unix.cm /opt/local/ ocaml/线程/线程Unix.cmi/opt/local/lib/ocaml/线程Unix.cmx /opt/local/lib/ocaml/unix.cma /opt/local/lib/ocaml/unix.cmi /opt/local/ocaml/unix.cmx /opt/local/lib/ocaml/unix.cmxa /opt/lib/ocaml/unix.cmxa/opt/local/ocaml/unix.cmxs/opt/lib/ocaml/vm线程/线程Unix.cmi/opt/local/lib/ocaml/vm螺纹/unix.cma>端口内容ocaml-ounit egrep '.cm‘/opt/local/lib/ocaml/site-lib/oUnit/.cm /opt/local/lib/ocaml/site-lib/oUnit/oUnit.cmi /opt/local/lib/ocaml/site-lib/oUnit/oUnit.cmx/opt/local/lib/ocaml/site-lib/oUnit/oUnit.cmxs /opt/local/lib/ocaml/site-lib/oUnit/oUnitDiff.cmi /opt/local/lib/ocaml/site-lib/oUnit/oUnitDiff.cmx > sudo port -f升级ounit ocaml密码:-->扫描链接错误的二进制文件: 100.0% ->没有找到损坏的文件。
发布于 2012-12-24 06:59:02
去核解决了这个问题:
重新安装端口 要重新安装端口:
请注意,如果您指定了非默认的变体,则可能需要按照myports.txt中记录的字母顺序以外的顺序安装端口。
https://stackoverflow.com/questions/14014866
复制相似问题