CodeLite MinGW32 无法 link 到 .dll.a 文件
CodeLite MinGW32 cannot link to .dll.a file
我最近转到 CodeLite 进行 C 开发,并且我一直在努力让 sigil 为 MinGW32 工作。
我一直在尝试使用库所在的路径 F:/sigil-mingw32
从项目设置中将其包含在本地。
我将参数“编译器/包含路径”设置为F:/sigil-mingw32/include
我在“Linker/ Libraries Search Path”中的链接器路径分别设置为F:/sigil-mingw32/lib
。
我已经将我的“Linker/Libraries”设置为包含库“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 可以直接 link 导入库,而无需将完整路径添加到您的 linker 设置中。与 CodeBlocks 不同,linker 在给定库文件的直接路径时不会删除 dll.a 库中的“lib”前缀。
因此,在 Linker/Libraries 搜索路径 和 中仅提供库文件夹的位置,而不是“path/lib/libsigil.dll.a” Libraries 参数将直接传递给 gcc,不包括“lib”前缀。
所以将参数设置为“sigil”而不是“libsigil.dll.a”就足够了。
我最近转到 CodeLite 进行 C 开发,并且我一直在努力让 sigil 为 MinGW32 工作。
我一直在尝试使用库所在的路径 F:/sigil-mingw32
从项目设置中将其包含在本地。
我将参数“编译器/包含路径”设置为F:/sigil-mingw32/include
我在“Linker/ Libraries Search Path”中的链接器路径分别设置为F:/sigil-mingw32/lib
。
我已经将我的“Linker/Libraries”设置为包含库“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 可以直接 link 导入库,而无需将完整路径添加到您的 linker 设置中。与 CodeBlocks 不同,linker 在给定库文件的直接路径时不会删除 dll.a 库中的“lib”前缀。 因此,在 Linker/Libraries 搜索路径 和 中仅提供库文件夹的位置,而不是“path/lib/libsigil.dll.a” Libraries 参数将直接传递给 gcc,不包括“lib”前缀。 所以将参数设置为“sigil”而不是“libsigil.dll.a”就足够了。