GCC / LD找不到链接库

时间:2013-06-10 19:26:57

标签: c++ g++ mingw ld

操作系统: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库的秘诀是什么?

1 个答案:

答案 0 :(得分:5)

终于明白了!

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

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

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