我已经建立了一个带有共享/ home的双启动intel skylake linux系统(Debian 8和Manjaro 16.08),并使用opam配置ocaml。我发现ocamlc的作品,但ocamlopt给出了'操作数类型不匹配'#汇编程序在其他系统上构建时出错。 ' opam开关重新安装'为每个系统创建不同的格式二进制文件。 " ELF 64位LSB可执行文件,x86-64" vs" ELF 32位LSB可执行文件,Intel 80386"。
我可以将$ OPAMROOT更改为在/ home之外并维护单独的版本,但是我想知道我需要更改哪些系统组件才能在这些系统之间实现ocamlopt兼容性? Debian目前有gcc 4.9.2-10和Manjaro gcc 6.1.1。
答案 0 :(得分:2)
您无法在两个不同的操作系统之间共享相同的opam开关,尤其是因为它们具有不同的体系结构。但是您可以创建两个不同的开关,每个操作系统一个。使用
opam switch <os-name> -A<compiler-version>
其中<os-version>
是您操作系统的任意名称,例如debian
或manjaro
。 <compiler-version>
是您要使用的OCaml编译器的版本,例如4.03
或4.02.3
等。
稍后,您可以更新您的配置文件,以便在bash启动期间激活正确的开关,具体取决于当前的操作系统。