ld.exe:找不到 -lstrmbase

Posted

技术标签:

【中文标题】ld.exe:找不到 -lstrmbase【英文标题】:ld.exe: cannot find -lstrmbase 【发布时间】:2014-01-13 12:40:32 【问题描述】:

我在使用 gnu gcc 编译器的代码块中收到以下错误,当我尝试编译代码时出现以下错误:

c:/mingw/bin/../lib/gcc/mingw32/4.6.2/../../../../mingw32/bin/ld.exe: cannot find-                                          lstrmbase
c:/mingw/bin/../lib/gcc/mingw32/4.6.2/../../../../mingw32/bin/ld.exe: cannot find -lz
collect2: ld returned 1 exit status
Process terminated with status 1 (0 minutes, 21 seconds)
2 errors, 0 warnings (0 minutes, 21 seconds)

【问题讨论】:

请出示您的代码。 ***.com/questions/12584243/… 的可能重复项 @herohuyongtao:这是关于链接器没有找到它被告知链接的库。代码在这里无关紧要。 【参考方案1】:

    首先,确保您的 mingw lib 目录中有 strmbase.lib(或 libstrmbase.lib)和 z.lib(libz.lib)(应该是“c:/mingw/gcc/mingw32/4.6 .2/" 在你的情况下)。

    其次,如果它们确实存在,请尝试将“c:/mingw/gcc/mingw32/4.6.2/”添加到您的库搜索路径中。

    可能有像“LIBRARY PATH”这样的GUI选项,虽然我不知道代码块。

    或者,您可以将选项传递给 gcc "-L c:/mingw/gcc/mingw32/4.6.2/"(它必须在 "-l..." 标志之前)

编辑:

    z.lib 是 zlib。您可以使用 gcc 构建它或从 MinGW 网站下载预构建的二进制文件(应该在 MinGW -> Extension 中)。

    strmbase.lib 来自 DirectShow Samples。您可以通过安装 Windows SDK 获取其源代码。可能有人为 MinGW 分发 prebuit 二进制文件。

【讨论】:

strmbase.lib(或 libstrmbase.lib)和 z.lib(libz.lib)在我的 mingw lib 中不存在。我怎样才能得到它们 @lukes flowfree's 展示了 code::blocks 的样子。【参考方案2】:

在 Windows 下使用 GTK 和 C 库的 FreeBASIC 开发人员的附加说明。

对于使用 FreeBASIC 的程序员来说,添加这些定义就足以让编译器直接找到包含库的目录

    #IF DEFINED(__FB_WIN32__)
    #LIBPATH "C:\msys64\mingw64\lib" 
'for windows '
    #ELSE
    #LIBPATH "/usr/lib"
'for linux '
    #ENDIF

【讨论】:

以上是关于ld.exe:找不到 -lstrmbase的主要内容,如果未能解决你的问题,请参考以下文章

错误(mingw32/bin/ld.exe 最终链接失败:设备上没有剩余空间)构建 C++ 项目

STM32f207ZG NUCLEO 板,ld.exe:.RxDescriptSection VMA [2000e000,2000e09f] 部分与 .bss VMA [20000118,200143

遇到的编译错误

链接 GLEW 失败

Vivado 2017.2 SDK 生成FSBL时存在的bug

Windows 上的 GCC 设备上没有剩余空间