【问题标题】:Find Third-Party Libraries with Cygwin使用 Cygwin 查找第三方库
【发布时间】:2021-03-12 03:09:40
【问题描述】:

我开始使用 Cygwin 构建我的项目,但我不知道如何设置它来查找我的第三方库。 例如,我将我的 directx-headers 放在系统路径中可以找到它们的位置,但 Cygwin 似乎没有搜索系统路径变量。

如何设置 Cygwin 以在第三方文件夹或 Windows 操作系统上的系统路径中查找其容器之外的库?

【问题讨论】:

  • 您要构建什么程序以及使用哪个工具?您始终可以将任何特定目录添加到搜索中,但 PATH 不是要使用的方法
  • 如何将特定目录添加到搜索中?实际上我更喜欢这样,因为我相信 Cygwin 包可能会与其他库发生冲突。
  • 您需要提供更多信息。你用什么工具?
  • 我在一台 Windows 电脑上,使用 Cygwin 和所有必需的软件包,试图从源代码构建台面。 Meson 从我目前从构建中收集到的内容中寻找 python、cmake 和使用 gcc。所有这些都在 Cygwin 中可用。我将编辑 OP 以显示这一点。
  • Mesa 已经构建为 Cygwin 包,请参阅 cygwin.com/packages/summary/mesa-src.html 。复制构建的最佳方法是下载 cygwin 源包并使用cygport 工具进行构建。但似乎你不是为 Cygwin 而是为 Mingw 构建

标签: cygwin


【解决方案1】:

如介子手册中所述

https://mesonbuild.com/Commands.html

$ meson configure [-h] [--prefix PREFIX] [--bindir BINDIR]
                  [--datadir DATADIR] [--includedir INCLUDEDIR]
                  [--infodir INFODIR] [--libdir LIBDIR]
                  [--libexecdir LIBEXECDIR] [--localedir LOCALEDIR]
 .....

您可以使用--includedir INCLUDEDIR作为包含 --libdir LIBDIR 用于导入库

【讨论】:

  • 谢谢。所以除了使用配置,我也可以使用设置,对吧?介子设置 [-h] [--prefix PREFIX] [--bindir BINDIR] [--datadir DATADIR] [--includedir INCLUDEDIR] [--infodir INFODIR] [--libdir LIBDIR] [--libexecdir LIBEXECDIR]跨度>
  • 似乎命令 --bindir --libdir 等都与构建库的位置相关联,而不是在构建期间搜索库的位置。 meson.build:21:0:错误:“includedir”选项的值是“/cygdrive/e/ThirdParty/Windows/DirectX/Include”,它必须是前缀“/cygdrive/c/dev/mesa”的子目录'。请注意,如果您传递相对路径,则假定它是前缀的子目录。这不是我想要的。
【解决方案2】:

我相信答案是使用 PKG_CONFIG_PATH,定义为here,并在给出的答案here

我还在 directx-headers 的 github 页面上找到了这个...

Pkg-config: 使用 Meson 构建这个项目,然后生成 安装的包可以通过 pkg-config 找到。

找到this的答案,也很有用。

最后,我找到了有用的this,并提供了我想知道的关于 Cygwin 搜索 PATH 的信息。

显着编辑 [已解决] - 解决方案Guide to pkg-config

在典型的 Unix 系统上,它会在目录中搜索 /usr/lib/pkgconfig 和 /usr/share/pkgconfig。这通常会涵盖 系统安装的模块。但是,可能会安装一些本地模块 在不同的前缀中,例如 /usr/local。在这种情况下,有必要 预先添加搜索路径,以便 pkg-config 可以找到 .pc 文件

$ pkg-config --modversion hello 

在 pkg-config 搜索路径中找不到包 hello。也许 您应该将包含“hello.pc”的目录添加到 PKG_CONFIG_PATH 环境变量没有找到包'hello'

$ export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig 
$ pkg-config --modversion hello 

1.0.0

需要的是使用 export VAR=value(或路径到目录) 在此之后,路径成功找到。

所以要查找第三方库等,只需使用导出变量命令即可。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多