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