偶尔我想用mingw(在windows上)从源代码编译。我打开msys,键入./configure,然后显示
checking for...xxxxxx
我有第一个问题:
偶尔会出现类似
的错误configure: error: Package requirements <ogg >= 1.3> were not met:
No package 'ogg' found.
那么我谷歌并找到“你可以输出默认的查找目录”好吧,我输入gcc -print-search-dirs
并查看目录列表,例如C:/ mingw / lib,C:/ mingw / lib / gcc,...
这些文件夹包含.a
个文件。猜猜看,其中一些还包含libogg.a
。那为什么抱怨呢?也许是版本号?不,我下载了最新的源代码并对其进行了编译,然后将.a文件放入目录中。同样的错误。它让我疯狂!请提供一些建议。
答案 0 :(得分:1)
传统上和通常情况下,当./configure
脚本检查库时,
您正在配置需要链接的包,它至少检查库本身的存在和可用性
对于库的头文件,没有它的编译器不能使用
库的API。 (我通常说,因为任何给定的./configure
检查
实际上是由软件包维护者编程的。它与您的编译器无关。)
检查 libfoobar
的存在和可用性通常不意味着./configure
检查会在文件系统中搜索libfoobar.dll
,libfoobar.a
或其他什么。这意味着./configure
检查只是在安装libfoobar
时尝试使用适合这样做的命令编译并链接样本程序与libfoobar
。
通常也会(并且越来越多)对库./configure
进行libfoobar
检查
pkg-config
尝试的工具
检索正确的编译器和链接器标志以与libfoobar
一起使用。为了成功尝试,pkg-config
元数据
与库包关联的文件foobar.pc
必须在标准中找到
放置在文件系统中,例如/usr/lib/pkgconfig
,/usr/share/pkgconfig
对于库,加上其标题,加上其pkg-config
元数据(如果有)
一切都可用于./configure
,有必要安装开发包
libfoobar
,而不是基本包。开发包
通常与基本包同名,并添加-dev
或-devel
组件,例如libfoobar-dev
如果./configure
检查失败,并显示以下格式的错误:
No package 'foobar' found.
这意味着检查尝试检索pkg-config
元数据
foobar
并未找到任何人。这通常是因为开发
未安装包libfoobar-dev
,即使libfoobar
为。