如何使用 pkg-config 在 Xcode 中设置包含路径?

Posted

技术标签:

【中文标题】如何使用 pkg-config 在 Xcode 中设置包含路径?【英文标题】:How to use pkg-config for setting include paths in Xcode? 【发布时间】:2011-03-05 12:29:05 【问题描述】:

例如,如果我需要 Gtk+ 包含路径。 Xcode项目设置中如何使用pkg-config gtk+-2.0 --cflags

【问题讨论】:

【参考方案1】:

一个选项,但它对于项目中的其他开发人员来说不是很便携——您可以在终端中运行pkg-config gtk+-2.0 --cflags 并将其粘贴到Build Settings -> Other C Flags。不过,我很想听听其他人如何以更便携的方式处理这个问题。理想情况下,最好在编译时运行 pkg-config 以使构建更加独立于系统。

【讨论】:

我也试过这个,虽然不是很理想,但这是我目前找到的最好的解决方案。理想情况下,Xcode 应该有一个 Gtk 框架。这里有一个,但该页面还警告说它不够稳定,无法供最终用户使用:sourceforge.net/apps/trac/gtk-osx/wiki/Build#Framework 这样做之后,我的xcode中仍然没有Gtk/gtk.h这样的文件或目录。我在这里有什么遗漏吗?【参考方案2】:
    创建聚合目标

    在构建阶段,添加一个运行脚本

    #!/bin/bash
    
    OTHER_CPLUSPLUSFLAGS="$(pkg-config gtk+-2.0 --cflags)"
    echo -e "OTHER_CPLUSPLUSFLAGS = \$(inherited) $OTHER_CPLUSPLUSFLAGS" > MyApp.xcconfig
    

    在项目的 Info 中,将 MyApp.xcconfig 设置为目标配置文件

    在应用目标的构建阶段中,将聚合目标添加为依赖项 在您的版本控制中排除 MyApp.xcconfig

一个缺点是,在您直接或间接构建聚合目标至少一次之前,自动完成将无法正常工作。

【讨论】:

【参考方案3】:

更便携的方法是编写一个脚本,将 pkg-config 的输出写入 .xcconfig 文件,然后将其包含在您的项目中。请确保不要将其添加到您的源代码库中。

【讨论】:

【参考方案4】: 使用使用 pkg-config 和任何其他 shell 工具的 makefile 来构建 lib。

为将在 XCode 中编译的库创建一个小的、无依赖关系的 API 文件,并将其和构建的库包含在 XCode 构建中。

可选:将 makefile 构建封装到 XCode 中的“运行脚本”构建步骤中。

【讨论】:

以上是关于如何使用 pkg-config 在 Xcode 中设置包含路径?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用以下make和pkg-config使clion工作?

如何将 pkg-config 名称映射到 yum/apt-get

在 Windows 中使用 pkg-config 查找库

MacBook安装wget几种方式

使用 pkg-config 宏 PKG_CHECK_MODULES 失败

如何将 pkg-config 添加到 Makefile?