如何解决CodeLite MinGW32 无法链接到 .dll.a 文件
我最近转移到 CodeLite 进行 C 开发,并且我一直在尝试让 sigil 为 MinGW32 工作。
我一直在尝试使用库所在的路径 F:/sigil-mingw32
从项目设置本地包含它。
我将参数“编译器/包含路径”设置为 F:/sigil-mingw32/include
我在“链接器/库搜索路径”中的链接器路径分别设置为 F:/sigil-mingw32/lib
。
我已经将我的“链接器/库”设置为包含库“libsigil.dll.a”,但是当我构建我的项目时,我得到了输出:
c:/Program Files (x86)/mingw-w64/i686-8.1.0-posix-dwarf-rt_v6-rev0/mingw32/bin/../lib/gcc/i686-w64-mingw32/8.1.0/../../../../i686-w64-mingw32/bin/ld.exe: cannot find -l-libsigil.dll
然后构建失败。 为什么链接器从库 dll 文件中排除了 .a 后缀?
解决方法
事实证明,CodeLite 可以直接链接导入的库,而无需将完整路径添加到您的链接器设置中。与 CodeBlocks 不同的是,当给出库文件的直接路径时,链接器不会删除 dll.a 库中的“lib”前缀。 因此,除了“path/lib/libsigil.dll.a”之外,Linker/Libraries Search Path 中仅提供了库文件夹的位置,并且将传递 Libraries 参数直接到gcc,不包括“lib”前缀。 所以将参数设置为“sigil”而不是“libsigil.dll.a”就足够了。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。