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

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

【问题讨论】:

    标签: xcode macos include gtk pkg-config


    【解决方案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】:
    1. 创建聚合目标
    2. 在构建阶段,添加一个运行脚本

      #!/bin/bash
      
      OTHER_CPLUSPLUSFLAGS="$(pkg-config gtk+-2.0 --cflags)"
      echo -e "OTHER_CPLUSPLUSFLAGS = \$(inherited) ${OTHER_CPLUSPLUSFLAGS}" > MyApp.xcconfig
      
    3. 在项目的 Info 中,将 MyApp.xcconfig 设置为目标配置文件

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

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:
        • 使用使用 pkg-config 和任何其他 shell 工具的 makefile 来构建 lib。
        • 为将在 XCode 中编译的库创建一个小的、无依赖关系的 API 文件,并将其和构建的库包含在 XCode 构建中。

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-12-17
          • 1970-01-01
          • 2021-08-29
          • 2016-11-07
          • 2013-02-25
          • 1970-01-01
          相关资源
          最近更新 更多