0

我已经在我的 mac(主机)上从源代码编译了 OCaml,我没有问题。我还在我的mac上为某些目标(不同于主机)交叉编译了OCaml,在这种情况下我有以下问题:

1)我可以直接使用(在目标上)ocamlrunocamlyacc因为它们是“纯”二进制文件,没有问题,就像在主机上一样。如果我想使用$INSTALL/bin(是目标上$INSTALL的安装目录)中的其他二进制文件,我有错误告诉我路径错误。实际上,如果我使用十六进制编辑器打开二进制文件,我会看到它以路径开头,其中路径是我在其上进行交叉构建的主机(我的 mac)上的路径,而不是其目标版本的路径。 ..当然,如果我用目标上的路径替换这条路径,则无需再做,一切都很好。对于来自和的所有其他二进制文件相同ocamlocamloptocamlrunocamlopt#!/not/target/but/host/path/to/ocamlrunocamlrunconfigureocamlrun ocamlopt$INSTALL/binocamlrunocamlyacc放在一边。(最后两个确实可以直接工作,正如我上面写的那样。)有没有办法configure(在主机上)ocaml交叉构建,以便ocamlrun目标上的正确路径直接出现在二进制文件的开头$INSTALL/bin

2)如果不需要通过标志指定$INSTALL/lib/ocaml目录,我就无法编译代码。-I有没有办法强制这个标准库路径在configure?或者任何ocaml处理它的“内部”环境变量,我可以编辑以确保ocaml会在其中查找库$INSTALL/lib/ocaml?(我对环境变量解决方案非常悲观,因为在主机上我只有两个环境变量(at printenv),ocaml而且似乎没有人处理这种东西,所以我不明白为什么它会变得不同/更好在目标上……)

4

0 回答 0