操作系统: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并粘贴了compile命令。对于库名称,我尝试过:odbc32,odbc32.a,libodbc32,libcodbc32.a我也尝试过:odbccp32,odbccp32.a,libodbccp32,libodbccp32.a我已经使用了正斜杠,反斜杠,双反斜杠,引号在路径周围用引号将整个-l参数引起来(这是Eclipse对-L参数的作用)。
我将库复制到包含已编译代码的目录中,从而无需指定路径。我将它们复制到包含ld.exe的目录中。我更新了Windows路径以包含目录,并重新启动了Eclipse和CLI。
如果我完全删除-l参数,则会遇到各种未解决的引用错误。ld.exe似乎正在查找该库,但倾向于隐藏实际问题。
链接到内置SQL库的秘密是什么?
终于明白了!
使用CLI时,请不要在-l参数中包含路径,请删除后缀“ .a”和“ lib”前缀:
-lodbc32
路径由-L参数提供。
要使其在Eclipse中工作,请在添加后编辑“库”条目(“项目属性/路径和符号/库”选项卡)。删除路径“ lib”和“ .a”。(Eclipse将警告使用相对路径的危险。)每当添加外部库时,请记住此步骤。
现在,它在Eclipse和CLI中都可以正常工作。