在Mac OS X上安装CLSQL

5

我已经在我的Intel Core 2 Duo Macbook上安装了SBCL(通过macports/darwinports),运行的是10.5.8系统版本。我已经像这样安装了几个库:

(require 'asdf)
(require 'asdf-install)
(asdf-install:install 'cl-who)

但是当我尝试以这种方式安装CLSQL('clsql)之后,它下载完毕后,我得到了以下结果:

...
; registering #<SYSTEM CLSQL-UFFI {123D9E01}> as CLSQL-UFFI
; $ cd /Users/ken/.sbcl/site/clsql-5.0.5/uffi/; make
cc -arch x86_64 -arch i386 -bundle /usr/lib/bundle1.o -flat_namespace -undefined suppress clsql_uffi.c -o clsql_uffi.dylib
ld: duplicate symbol dyld_stub_binding_helper in /usr/lib/bundle1.o and /usr/lib/bundle1.o for architecture i386
ld: duplicate symbol dyld_stub_binding_helper in /usr/lib/bundle1.o and /usr/lib/bundle1.o for architecture x86_64
collect2: ld returned 1 exit status
collect2: ld returned 1 exit status
lipo: can't open input file: /var/folders/Nf/Nf4o5ArDFaWBH2OwtnWM3E+++TQ/-Tmp-//ccJyZxou.out (No such file or directory)
make: *** [clsql_uffi.so] Error 1

我是否遗漏了什么,或者有什么技巧可以在Mac OS X上构建它?我对Mac上的C库知之甚少,所以我甚至不知道从哪里开始。

谢谢!


顺便问一下,你尝试过使用Quicklisp来处理安装吗? - PuercoPop
需要注意的是,asdf-install 已被认为是过时的。我能够使用 quicklisp 来解决类似的情况。 - cwallenpoole
3个回答

2

0

进展:受到这个Asterisk bug报告的启发(“包含bundle1.o会破坏Tiger和Leopard”),我从~/.sbcl/site/clsql-5.1.1/uffi/Makefile的所有4个位置中删除了-bundle /usr/lib/bundle1.o,然后重新安装,它在死亡之前走得更远了。

现在我看到:

debugger invoked on a SIMPLE-ERROR in thread #<THREAD "initial thread" RUNNING {1193E621}>:
  Couldn't load foreign library "clsql_uffi". (searched CLSQL-SYS:*FOREIGN-LIBRARY-SEARCH-PATHS*)

这有点奇怪,因为:

  • clsql-sys:*foreign-library-search-paths*(#P"/Users/ken/.sbcl/site/clsql-5.1.1/uffi/")

  • clsql-uffi-loader.lisp 尝试所有的 (uffi:foreign-library-types),即 ("dylib" "bundle")

  • 有一个由 makefile 构建的 ~/.sbcl/site/clsql-5.1.1/uffi/clsql_uffi.dylib 文件

有什么想法吗?


1
一个匿名用户的评论添加为编辑:修复:相关问题似乎是由于实际的.dylib文件虽然被创建,但并不是真正的动态共享库所导致的。因此,在删除-bundle /usr/lib/bundle1.o时,将-dynamiclib添加到相同的行中。 - Rob

0

这里有一些指示在这里, 你已经完成了所有的准备步骤吗?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接