我时不时地想用mingw(在Windows上)从源代码编译一些东西。我打开msys,输入./configure,它说
checking for...xxxxxx
那里我有第一个问题:
有时会出现类似的错误
configure: error: Package requirements <ogg >= 1.3> were not met:
No package 'ogg' found.
好吧,我在Google上找到了“您可以输出默认查找目录”,所以好的,我键入
gcc -print-search-dirs
并查看目录列表,例如C:/ mingw / lib,C:/ mingw / lib / gcc,...这些文件夹包含
.a
-files。猜猜是什么,其中一些还包含libogg.a
。那么为什么要抱怨呢?也许是版本号?不,我下载了最新的源代码并进行了编译,然后将.a文件放入目录中。同样的错误。它让我疯狂!请给一些建议怎么办。 最佳答案
传统上,通常,当./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
软件包。