操作系统: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库的秘诀是什么?
答案 0 :(得分:5)
终于明白了!
使用CLI时,请不要在-l参数中包含路径,删除“.a”后缀和“lib”前缀:
-lodbc32
该路径由-L
参数提供。
要使其在Eclipse中运行,请在添加后编辑“库”条目(“项目属性/路径和符号/库”选项卡)。删除路径“lib”和“.a”。 (Eclipse将警告使用相对路径的危险。)每当添加外部库时,请记住此步骤。
它现在可以在Eclipse和CLI中正常工作。