我正在尝试在Mac OS X 10.12.6(Sierra)上安装Pyodbc(pip install pyodbc
)时追踪问题,导致以下错误:
ld: library not found for -lodbc
链接器(ld
)正在寻找库“odbc”而没有找到它。我假设链接器可以处理动态库,但也许它正在寻找一个静态库文件(即libodbc.a
)。
现在我已经安装了 unixODBC :
cd ~/Downloads
curl -O ftp://ftp.unixodbc.org/pub/unixODBC/unixODBC-2.3.4.tar.gz
tar xzvf unixODBC*.tar.gz
cd unixODBC*
./configure
make
sudo make install
遗憾的是,我的问题有点宽泛,因为我对这个问题知之甚少。这些可能会让我朝着正确的方向前进:ld
在哪里寻找图书馆?它要寻找什么库(文件)名称?我在libodbc.dylib
中看到了/usr/local/lib
;不应该是链接的图书馆?而且......我怎样才能进一步调试呢?
P.S。 - 我试图在不使用Homebrew的情况下这样做。
答案 0 :(得分:0)
IR
正在ld
查找/usr/lib/
,但由于在El Capitan及其他地方实施了SIP(系统完整性保护),因此无法修改该目录。
由于库文件实际上位于libodbc.dylib
,我通过将/usr/local/lib/
添加到-L/usr/local/lib
参数来修复此问题。
对于Python包,将ld
添加到编译器设置中。我已经为Pyodbc的本地克隆做了这个,并且它有效!