如何解决未找到“odbc”库(-lodbc)的链接器(ld)错误?

时间:2017-09-05 20:54:22

标签: macos ld pyodbc unixodbc

我正在尝试在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的情况下这样做。

1 个答案:

答案 0 :(得分:0)

IR正在ld查找/usr/lib/,但由于在El Capitan及其他地方实施了SIP(系统完整性保护),因此无法修改该目录。

由于库文件实际上位于libodbc.dylib,我通过将/usr/local/lib/添加到-L/usr/local/lib参数来修复此问题。

对于Python包,将ld添加到编译器设置中。我已经为Pyodbc的本地克隆做了这个,并且它有效!