首页 文章

GCC / LD找不到链接库

提问于
浏览
4

操作系统:Windows 7企业版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 回答

  • 4

    终于明白了!

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

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

    它现在在Eclipse和CLI中都能正常工作 .

相关问题