【问题标题】:How to resolve linker (ld) error for "odbc" library not found (-lodbc)?如何解决未找到“odbc”库(-lodbc)的链接器(ld)错误?
【发布时间】:2017-09-05 20:54:21
【问题描述】:

我正在尝试在 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 在哪里寻找图书馆?它会寻找什么库(文件)名称?我在/usr/local/lib 中看到libodbc.dylib;那不应该是链接的库吗?还有......我怎样才能进一步调试呢?

附: -- 我试图在不使用 Homebrew 的情况下做到这一点。

【问题讨论】:

    标签: macos ld pyodbc unixodbc


    【解决方案1】:

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

    由于库文件实际上位于/usr/local/lib/,因此我通过将-L/usr/local/lib 添加到ld 参数来解决此问题。

    对于 Python 包,将 ['library_dirs'] = '/usr/local/lib' 添加到您的编译器设置中。我已经为 Pyodbc 的本地克隆完成了此操作,并且成功了!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-06
      • 2020-04-02
      相关资源
      最近更新 更多