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

发布于 2024-09-06 08:21:27 字数 88 浏览 5 评论 0原文

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

For example, if I need Gtk+ include paths.
How to use pkg-config gtk+-2.0 --cflags in Xcode project settings?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

遥远的绿洲 2024-09-13 08:21:28
  • 使用使用 pkg-config 和任何其他 shell 工具的 makefile 来构建库。
  • 为将在 XCode 中编译的库创建一个小型、无依赖项的 API 文件,并将其和构建的库包含在 XCode 构建中。

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

  • Use a makefile that uses pkg-config and any other shell tools to build a lib.
  • Create a small, dependency-free API file for the lib that will compile in XCode, and include it and the built lib in the XCode build.

  • Optional: encapsulate the makefile build into a "Run Script" build step in XCode.

扭转时空 2024-09-13 08:21:28

除了 @keithyip 的出色答案之外,如果还需要链接器标志,请使用
OTHER_LDFLAGS

#!/bin/sh

OTHER_CPLUSPLUSFLAGS=$(pkg-config --cflags gtk+-2.0)
OTHER_LDFLAGS=$(pkg-config --libs gtk+-2.0)

echo "OTHER_CPLUSPLUSFLAGS = \$(inherited) ${OTHER_CPLUSPLUSFLAGS}" > MyApp.xcconfig
echo "OTHER_LDFLAGS = \$(inherited) ${OTHER_LDFLAGS}" >> MyApp.xcconfig

In addition to @keithyip's great answer, if linker flags are also needed, use
OTHER_LDFLAGS:

#!/bin/sh

OTHER_CPLUSPLUSFLAGS=$(pkg-config --cflags gtk+-2.0)
OTHER_LDFLAGS=$(pkg-config --libs gtk+-2.0)

echo "OTHER_CPLUSPLUSFLAGS = \$(inherited) ${OTHER_CPLUSPLUSFLAGS}" > MyApp.xcconfig
echo "OTHER_LDFLAGS = \$(inherited) ${OTHER_LDFLAGS}" >> MyApp.xcconfig

七颜 2024-09-13 08:21:27

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

One option, but it's not very portable to other developers on the project -- you can just run pkg-config gtk+-2.0 --cflags in your Terminal and paste it into Build Settings -> Other C Flags. I'd be interested to hear how others deal with this in a more portable way though. Ideally, it would be nice to have pkg-config run at compile-time to make building more system-independent.

ぽ尐不点ル 2024-09-13 08:21:27
  1. 创建聚合目标
  2. 在构建阶段中,添加运行脚本

    <前><代码>#!/bin/bash

    OTHER_CPLUSPLUSFLAGS="$(pkg-config gtk+-2.0 --cflags)"
    echo -e "OTHER_CPLUSPLUSFLAGS = \$(继承) ${OTHER_CPLUSPLUSFLAGS}" > MyApp.xcconfig

  3. 在项目的“信息”中,将 MyApp.xcconfig 设置为目标配置文件

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

一个缺点是,除非您直接或间接构建聚合目标至少一次,否则自动完成功能将无法正常工作。

  1. Create an aggregate target
  2. In Build Phases, add a Run Script

    #!/bin/bash
    
    OTHER_CPLUSPLUSFLAGS="$(pkg-config gtk+-2.0 --cflags)"
    echo -e "OTHER_CPLUSPLUSFLAGS = \$(inherited) ${OTHER_CPLUSPLUSFLAGS}" > MyApp.xcconfig
    
  3. In Info in your project, set MyApp.xcconfig as your target configuration file

  4. In Build Phases in your app target, add the aggregate target as a dependency
  5. Exclude MyApp.xcconfig in your version control

One drawback is that until you build the aggregate target directly or indirectly at least once, the autocomplete will not work properly.

讽刺将军 2024-09-13 08:21:27

更可移植的是编写一个脚本,将 pkg-config 的输出写入 .xcconfig 文件,然后将其包含在您的项目中。请确保不要将其添加到您的源存储库中。

More portable would be to write a script that writes the output of pkg-config into an .xcconfig file and then include that in your project. Just be sure to not add it into your source repository.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文