LispWorks 8.0.1用Common SQL连接PostgreSQL报错求助
解决LispWorks 8.0.1连接PostgreSQL时libpq加载失败的问题
你遇到的问题是LispWorks的Common SQL接口无法找到Homebrew安装的libpq库,尽管已经配置了DYLD_LIBRARY_PATH。以下是针对性的解决方案:
1. 修正DYLD_LIBRARY_PATH的指向并正确启动LispWorks
Homebrew安装的libpq库文件不在/opt/homebrew/Cellar/libpq根目录,而是在具体版本的lib子目录下。
- 先查看已安装的libpq版本:
ls /opt/homebrew/Cellar/libpq/
- 假设版本为
16.0,在终端设置环境变量后启动LispWorks(macOS GUI应用不会读取shell配置文件,必须通过终端传递环境变量):
export DYLD_LIBRARY_PATH=/opt/homebrew/Cellar/libpq/16.0/lib:$DYLD_LIBRARY_PATH open /Applications/LispWorks\ 8.0.1.app
2. 在初始化代码中直接指定libpq绝对路径
跳过环境变量配置,直接在代码里指定库文件的完整路径:
(load-all-patches) (require "postgresql") (sql:initialize-database-type :database-type :postgresql :library-path "/opt/homebrew/Cellar/libpq/16.0/lib/libpq.dylib")
将16.0替换为你实际安装的libpq版本号。
3. 创建libpq到系统可识别目录的符号链接
把libpq库链接到/usr/local/lib(macOS允许加载该目录下的库):
sudo ln -s /opt/homebrew/Cellar/libpq/16.0/lib/libpq.dylib /usr/local/lib/libpq.dylib sudo ln -s /opt/homebrew/Cellar/libpq/16.0/lib/libpq.5.dylib /usr/local/lib/libpq.5.dylib
完成链接后重启LispWorks再尝试初始化。
4. 移除LispWorks的硬化运行签名(谨慎使用)
macOS的硬化机制会限制相对路径库的加载,你可以移除应用签名来绕过限制:
- 右键点击
LispWorks 8.0.1.app,选择「显示包内容」 - 进入
Contents/MacOS目录,找到主程序文件(如lispworks-8-0-1-x86-64-darwin) - 在终端执行:
codesign --remove-signature /Applications/LispWorks\ 8.0.1.app/Contents/MacOS/lispworks-8-0-1-x86-64-darwin
注意:此操作会移除应用的安全签名,可能带来潜在风险,仅在其他方法无效时使用。
内容的提问来源于stack exchange,提问作者Alexane
相关产品推荐
相关产品推荐

