Mac Big Sur安装pecl的sqlsrv包报错ld: library not found for -lodbc如何解决
故障解决方法
首先你之前的尝试存在两个核心错误:
- 给
-L参数传入的是二进制程序存放的bin目录,库文件默认存放在lib目录,路径指向完全错误 ld本身存放在/usr/bin是正常的,它的搜索路径不需要包含自身的存放路径,只需要包含要链接的库文件的存放路径
步骤1:安装依赖库
首先安装缺失的odbc依赖库,通过Homebrew安装unixODBC即可:brew install unixodbc
如果还没有安装Homebrew,先执行对应安装命令完成brew的部署后再执行上面的操作。
步骤2:指定正确的编译路径执行安装
根据你的Mac芯片类型,选择对应命令执行即可:
- Intel芯片Mac:
CFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib" sudo pecl install sqlsrv - Apple Silicon(M1/M2等)芯片Mac:
CFLAGS="-I/opt/homebrew/include" LDFLAGS="-L/opt/homebrew/lib" sudo pecl install sqlsrv
可选兜底方案
如果上面的命令依然报错,先确认你已经安装了Xcode命令行工具:xcode-select --install
安装完成后执行带命令行工具路径的安装命令:CFLAGS="-I/Library/Developer/CommandLineTools/usr/include" LDFLAGS="-L/Library/Developer/CommandLineTools/usr/lib" sudo pecl install sqlsrv
内容的提问来源于stack exchange,提问作者Joost de Kok
相关产品推荐
相关产品推荐

