【问题标题】:ld.exe: cannot find -lstrmbaseld.exe:找不到 -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)

【问题讨论】:

标签: c++ c gcc


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

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

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

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

编辑:

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

  2. 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

【讨论】:

    猜你喜欢
    • 2021-07-13
    • 2011-06-23
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    • 2019-10-27
    • 2012-02-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多