OCaml编译编译Lablgl和Lablgtk时出错



我正在尝试编译三个文件-使用lablgtk2的toolbar.ml、使用lablgl的window.ml和同时调用这两个文件的main.ml。这是我的shell脚本:

#!/bin/bash
echo "Compiling files"
eval $(opam config env)
echo "Compiling toolbar"
ocamlc -I +lablgtk2 lablgtk.cma gtkInit.cmo toolbar.ml
echo "Compiling window"
ocamlfind ocamlc window.ml -package lablgl.glut -linkpkg
ocamlc -c main.ml
ocamlc -o run window.cmo main.cmo toolbar.cmo
echo "Running executable"
./run
echo "Clearing up"
rm run main.cmo main.cmi main.o window.cmo window.cmi window.o a.out
rm toolbar.cmo toolbar.cmi

但我收到了这个错误消息:

File "_none_", line 1:
Error: Error while linking window.cmo:
Reference to undefined global `Glut'

有人知道我在这里做错了什么吗?

原来我没有链接所有的包/创建一个新的包-这就是我修复它的方法:

#!/bin/bash
echo "Compiling files"
eval $(opam config env)
echo "Compiling toolbar"
ocamlc -a -o toolbar.cma -linkall -I +lablgtk2 lablgtk.cma gtkInit.cmo toolb    ar.ml
echo "Compiling window"
ocamlfind ocamlc -a -o window.cma -linkall window.ml -package lablgl.glut -l    inkpkg
ocamlc -c main.ml
ocamlc -o run window.cma toolbar.cma main.cmo
echo "Running executable"
./run
echo "Clearing up"
rm run main.cmo main.cmi main.o window.cmo window.cmi window.o a.out
rm toolbar.cmo toolbar.cmi
rm window.cma toolbar.cma

最新更新