6

操作系统:Windows 7 Enterprise x64 IDE:Eclipse Juno/CDT 编译器:MinGW 4.6.2 (C:\MinGW)

user697111一样,我无法让 ld.exe 找到外部库。

简单的程序可以正常编译和链接,但是当我尝试使用提供的库添加 SQL 功能时,我在 Eclipse 中收到以下错误消息:“c:/mingw/bin/../lib/gcc/mingw32/4.6.2/. ./../../../mingw32/bin/ld.exe: 找不到 -lC:\MinGW\lib\libodbc32.a"。

我将 C:\MinGW\lib 指定为项目库路径。我将 C:\MinGW\lib\libodbc32.a 指定为唯一的项目库(这使得未解决的引用错误在 IDE 中消失了)。

我切换到 CLI 并粘贴了编译命令。对于库名称,我尝试过:odbc32、odbc32.a、libodbc32、libcodbc32.a 我也尝试过:odbccp32、odbccp32.a、libodbccp32、libodbccp32.a 我使用过正斜杠、反斜杠、双反斜杠、引号在路径周围,在整个 -l 参数周围加上引号(这是 Eclipse 对 -L 参数所做的)。

我将库复制到包含已编译代码的目录中,以消除指定路径的需要。我将它们复制到包含 ld.exe 的目录中。我更新了 Windows 路径以包含该目录并重新启动 Eclipse 和 CLI。

如果我完全删除 -l 参数,我会得到各种未解决的引用错误。似乎 ld.exe正在查找该库,但一心想要隐藏真正的问题。

链接到内置 SQL 库的秘诀是什么?

4

1 回答 1

5

终于明白了!

使用 CLI 时,不要在 -l 参数中包含路径,去掉“.a”后缀和“lib”前缀: -lodbc32 路径由-L参数提供。

要使其在 Eclipse 中工作,请在添加后编辑库条目(项目属性/路径和符号/库选项卡)。删除路径、“lib”和“.a”。(Eclipse 将警告使用相对路径的危险。)每当您添加外部库时,请记住此步骤。

它现在在 Eclipse 和 CLI 中都可以正常工作。

于 2013-06-11T19:52:40.347 回答