我时不时地想用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.
    

    好吧,我在Google上找到了“您可以输出默认查找目录”,所以好的,我键入gcc -print-search-dirs并查看目录列表,例如C:/ mingw / lib,C:/ mingw / lib / gcc,...

    这些文件夹包含.a -files。猜猜是什么,其中一些还包含libogg.a。那么为什么要抱怨呢?也许是版本号?不,我下载了最新的源代码并进行了编译,然后将.a文件放入目录中。同样的错误。它让我疯狂!请给一些建议怎么办。

    最佳答案

    传统上,通常,当./configure脚本检查某个库时,
    您要配置的程序包需要链接,它至少检查库本身的存在性和可用性,以及
    库的头文件,否则编译器将无法使用
    图书馆的API。 (我通常会说,因为任何给定的./configure检查
    实际由软件包维护者编程。它与您的编译器无关)。

    通常,检查libfoobar的存在和可用性并不意味着./configure检查会在文件系统中搜索libfoobar.dlllibfoobar.a或其他内容。这意味着,在安装了./configure时,libfoobar检查只是尝试使用适合的命令针对libfoobar编译和链接样本程序。

    通常(越来越多),对库./configurelibfoobar检查会调用
    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软件包。

    08-25 23:37