2012-11-27 33 views
9

Tôi đang cố gắng biên dịch mã nguồn của MEGAM thư viện Ocaml trên máy Ubuntu 64.Lỗi biên dịch OCaml:/usr/bin/ld: không thể tìm thấy -lstr

Tôi đã cài đặt OCaml (v 3.12.1), sử dụng sudo apt-get install ocaml.

Tôi gặp một vấn đề khi chạy "làm cho" lệnh trong terminal trên mã nguồn đã được giải nén, với OCaml trả lại lỗi:

/user/bin/ld: cannot find -lstr 
collect2: error: ld returned 1 exit status 

Các makefile được sản xuất hai lệnh sau:

ocamldep *.ml > .depend 

Không có lỗi khi chạy

ocamlc -g -custom -o megam str.cma -cclib -lstr bigarray.cma -cclib -lbigarray unix.cma -cclib -lunix -I /usr/lib/ocaml/caml fastdot_c.c fastdot.cmo intHashtbl.cmo arry.cmo util.cmo data.cmo bitvec.cmo cg.cmo wsemlm.cmo bfgs.cmo pa.cmo perceptron.cmo radapt.cmo kernelmap.cmo abffs.cmo main.cmo

ném lỗi trên khi chạy.

Tôi đã thử xóa lệnh -lstr khỏi lệnh biên dịch, nó đã ngừng ném lỗi cụ thể đó nhưng bắt đầu ném một lỗi khác (Reference to undefined global 'Bigarray'), điều đó khiến tôi trở thành thứ mà tôi bỏ lỡ trong quá trình cài đặt OCaml. loại PATH hoặc tài liệu tham khảo tôi cần thiết để thiết lập.

Bất kỳ trợ giúp nào thực sự được đánh giá cao, ngay cả khi nó chỉ là một cảnh quay trong bóng tối, như đang thực sự đấu tranh để tìm ra bất cứ điều gì!

Trả lời

13

The instructions given here cho phép tôi biên dịch không có lỗi. Nó nắm tới:

locate libcamlstr 

đó nói với tôi rằng libcamlstr có thể được tìm thấy trong /usr/lib/ocaml (YMMV), vì vậy tôi làm:

cd /usr/lib/ocaml 
sudo ln -s libcamlstr.a libstr.a 

Sau đó, tôi có thể lập dự án:

cd /usr/local/src/cil 
make clean && ./configure && make 
+0

/usr/local/src/CIL là gì? Tôi không có thư mục này ... –

1

Bạn chỉ có thể thay đổi makefile từ

-lstr 

để

-lcamlstr 
Các vấn đề liên quan