【问题标题】:Install CLSQL on Mac OS X在 Mac OS X 上安装 CLSQL
【发布时间】:2010-04-04 02:23:13
【问题描述】:

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

(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 来处理安装吗?
  • 应该注意 asdf-install 在此时被认为已弃用。我能够使用quicklisp 来解决类似的情况。

标签: macos lisp common-lisp sbcl clsql


【解决方案1】:

使用 Quicklisp 代替“裸”的 ASDF 可能会容易得多。看看https://www.quicklisp.org/beta/

【讨论】:

    【解决方案2】:

    有说明here,准备步骤都做好了吗?

    【讨论】:

      【解决方案3】:

      进度:受this Asterisk bug report 的启发(“Including bundle1.o 打破 Tiger and 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 文件

      想法?

      【讨论】:

      • 来自匿名用户的评论添加为编辑: 修复:相关问题似乎是由于创建的实际 .dylib 文件不是真正动态的事实引起的共享库。为此,在删除 -bundle /usr/lib/bundle1.o 时,将 -dynamiclib 添加到这些相同的行中。
      猜你喜欢
      • 2011-07-28
      • 2017-01-16
      • 2013-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-17
      • 2013-07-19
      相关资源
      最近更新 更多