未找到MinGW msys包:一般建议如何继续

时间:2016-03-14 21:35:09

标签: c++ windows gcc compilation mingw

偶尔我想用mingw(在windows上)从源代码编译。我打开msys,键入./configure,然后显示

checking for...xxxxxx

我有第一个问题:

  • mingw在哪里检查?
  • 它检查什么? .dll,.a,.o。,......还有什么?

偶尔会出现类似

的错误
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文件放入目录中。同样的错误。它让我疯狂!请提供一些建议。

1 个答案:

答案 0 :(得分:1)

传统上和通常情况下,当./configure脚本检查库时, 您正在配置需要链接的包,它至少检查库本身的存在和可用性 对于库的头文件,没有它的编译器不能使用 库的API。 (我通常说,因为任何给定的./configure检查 实际上是由软件包维护者编程的。它与您的编译器无关。)

检查 libfoobar的存在和可用性通常意味着./configure检查会在文件系统中搜索libfoobar.dlllibfoobar.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为。