Я разместил вопрос в ocaml listserv , на который никто не ответил, я надеюсь, что кто-то здесь может либо назвать меня идиотом, подтвердить ситуацию или предложить творческое решение.
При построении динамической библиотеки через ocamlbuild
Я застреваю на последней строке ссылки,
/opt/ocaml-3.12.1/bin/ocamlopt.opt -shared -verbose -cc gcc plugins/example.cmx -o plugins/example.cmxs -ccopt -v
+ as -o 'plugins/example.cmxs.startup.o' '/tmp/camlstartupe6993f.s'
+ gcc -o 'plugins/example.cmxs' '-L/opt/ocaml-3.12.1/lib/ocaml' -v 'plugins/example.cmxs.startup.o' 'plugins/example.o'
Это создает ошибку, подобную здесь .Эта ошибка исправляется, когда я удаляю опцию -cc
и флаг -shared
передается gcc
.
/opt/ocaml-3.12.1/bin/ocamlopt.opt -shared -verbose plugins/example.cmx -o plugins/example.cmxs -ccopt -v
+ as -o 'plugins/example.cmxs.startup.o' '/tmp/camlstartup2c31a2.s'
+ gcc -shared -o 'plugins/example.cmxs' '-L/opt/ocaml-3.12.1/lib/ocaml' -v 'plugins/example.cmxs.startup.o' 'plugins/example.o'
OCamlbuild передает опцию -cc
всем, поэтому удаление, которое не являетсяопция.Похоже на ошибку в ocamlopt;кто-нибудь сталкивался с подобными ситуациями?Я что-то упускаю или какие-либо параметры в компиляции?
Спасибо.
РЕДАКТИРОВАТЬ
Мое решение - просто передать параметры черезфлаг в myocamlbuild.ml
flag ["shared"; "link"]
(S [A"-ccopt";A"-shared"]);