我已经在我的mac(主机)上从源代码编译了OCaml,我没有问题。我还在我的mac上交叉编译了OCaml以获得一些目标(与主机不同),在这种情况下我有以下问题:
1)我可以直接使用(在目标上)ocamlrun
和ocamlyacc
,因为它们是纯粹的"二进制文件,没有问题,就像在主机上一样。如果我想使用$INSTALL/bin
中的其他二进制文件($INSTALL
是目标上的ocaml
的安装目录),例如ocamlopt
,我有错误告诉我ocamlrun
的路径{1}}错了。实际上,如果我用十六进制编辑器打开ocamlopt
二进制文件,我会看到它以#!/not/target/but/host/path/to/ocamlrun
开头,其中路径是主机(我的mac)上ocamlrun
的路径。我configure
交叉构建,而不是其目标版本的路径......当然,如果我用目标上的路径替换此路径,则不再需要ocamlrun ocamlopt
,一切都是好。对于$INSTALL/bin
,ocamlrun
和ocamlyacc
放在一边的所有其他二进制文件也是如此。 (最后两个确实直接工作,正如我上面写的那样。)有没有办法configure
(在主机上)ocaml
交叉构建,以便ocamlrun
的正确路径target直接出现在$INSTALL/bin
的二进制文件的开头?
2)我无法编译代码而无需通过$INSTALL/lib/ocaml
标志指定-I
目录。有没有办法在configure
处强制使用此标准库路径?或任何ocaml
"内部"处理它的环境变量我可以编辑以确保ocaml
将在$INSTALL/lib/ocaml
中查找库? (我对环境变量解决方案非常悲观,因为在主机上我只有两个关于printenv
的环境变量(ocaml
)并且似乎没有人处理这类内容,所以我不知道#39;看看为什么它会在目标上变得不同/更好......)