Как собрать Xen unikernel из Mirage OS

Я прочитал этот документ ( http://openmirage.org/wiki/hello-world) и попытался создать unikernel xen следующим образом:

mirage configure --xen
make depend
make    

Но не удалось при компиляции:

ocamlbuild -classic-display -use-ocamlfind -pkgs lwt.syntax,mirage-console.xen,mirage-types.lwt -tags "syntax(camlp4o),annot,bin_annot,strict_sequence,principal" -tag-line "<static*.*>: -syntax(camlp4o)" -cflag -g -lflags -g,-linkpkg,-dontlink,unix main.native.o
ocamlfind ocamldep -package mirage-types.lwt -package mirage-console.xen -package lwt.syntax -syntax camlp4o -modules main.ml > main.ml.depends
ocamlfind ocamlc -c -g -annot -bin-annot -principal -strict-sequence -package mirage-types.lwt -package mirage-console.xen -package lwt.syntax -syntax camlp4o -o main.cmo main.ml
ocamlfind ocamlopt -c -g -annot -bin-annot -principal -strict-sequence -package mirage-types.lwt -package mirage-console.xen -package lwt.syntax -syntax camlp4o -o main.cmx main.ml
pkg-config --print-errors --exists mirage-xen
Package mirage-xen was not found in the pkg-config search path.
Perhaps you should add the directory containing `mirage-xen.pc'

в переменную среды PKG_CONFIG_PATH Пакет 'mirage-xen' не найден make: *** [build] Ошибка 1

Я установил mirage-xen opam install mirage-xen успешно. Но в моем каталоге.opam нет mirage-xen.pc,

2 ответа

Решение

Скорее всего, что ваша версия mirage-xen устарел Вы можете обновить его через OPAM:

opam update -u
opam info mirage-xen

Убедитесь, что у вас есть mirage-xen версия 2.1.1 или выше (последняя по состоянию на этот комментарий 2.1.3).

Если вы не заберете обновление, то у вас может быть локальная проверка Git центральной базы данных пакета. Подтвердите это, посмотрев на вывод:

opam remote

Вывод этого должен сказать вам, где ваш местный git Оформить заказ, и поэтому перейдите туда и обновите с git://github.com/ocaml/opam-repository а потом беги opam update -u,

Они должны появиться в вашем префиксе OPAM. Я получил:

$ ls $(opam config var prefix)/lib/pkgconfig
gmp.pc                mirage-xen-ocaml-bindings.pc  mirage-xen-posix.pc
libminios-xen.pc      mirage-xen-ocaml.pc           openlibm.pc
mirage-xen-minios.pc  mirage-xen.pc

(у вас может быть меньше; mirage-xen.pc это важный)

Предполагая, что они есть, проверьте, что Makefile проекта устанавливает PKG_CONFIG_PATH правильно.

Другие вопросы по тегам