gpt4 book ai didi

ios - 如何为 Xcode 项目指定额外的 clang 选项?

转载 作者:可可西里 更新时间:2023-11-01 03:31:44 26 4
gpt4 key购买 nike

我在 this tutorial 的帮助下创建了自定义 clang 插件我想在我的 Xcode iOS 项目上自动运行它。

我需要在 clang 上运行以下附加命令,

-Xclang -load \
-Xclang ~/static_analysis/llvm/Debug+Asserts/lib/libPluginExample.so \
-Xclang -plugin -Xclang -example-plugin \

我想保存 Xcode 生成的所有其他命令,因为很难为每个 Xcode 项目创建和传递这些命令。这就是为什么我选择使用 clang 插件而不是 clang 工具的原因。

我怎样才能做到这一点?

或者我如何自动提取由 xcode 生成的编译器标志,以便在 clang 工具中使用它们? (因为,为了正确使用工具,我需要指定所有包含目录、所有源和所有框架)

更新:

我在项目中添加了千条命令

Settings -> Build Phases -> Compile Sources (double click on source)

,但在编译时出现错误(插件是来自 clang 源的标准示例 libPrintFunctionNames.dylib):

error: unable to load plugin '/Users/...llvm/Debug+Asserts/lib/libPrintFunctionNames.dylib': 'dlopen(/Users/.../llvm/Debug+Asserts/lib/libPrintFunctionNames.dylib, 9): Symbol not found: __ZN5clang11ASTConsumer21HandleInterestingDeclENS_12DeclGroupRefE Referenced from: /Users/.../llvm/Debug+Asserts/lib/libPrintFunctionNames.dylib Expected in: flat namespace in /Users/.../llvm/Debug+Asserts/lib/libPrintFunctionNames.dylib' Command /Applications/Xcode 2.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang failed with exit code 1

我尝试使用 libPrintFunctionNames.a 而不是 libPrintFunctionNames.dylib,但它没有帮助。

可能是因为我在 llvm 和 clang 的独立源文件上构建了我的插件,而在 xcode 中我使用了其他版本的 clang。我会检查一下。

最佳答案

我会在构建选项 OTHER_CFLAGS 中指定额外的 Clang 选项。您可以在

target/project Build Settings -> Apple LLVM 5.0 - Custom Compiler Flags -> Other C Flags

或者你可以为xcodebuild指定OTHER_CFLAGS,例如,

xcodebuild -scheme SampleProject build OTHER_CFLAGS="-Xclang -load -Xclang /path/to/libPrintFunctionNames.dylib -Xclang -plugin -Xclang print-fns"

xcodebuild 在您不想维护 2 个仅在 OTHER_CFLAGS 上不同的目标时很方便。

但你是对的,看起来你确实需要链接到与链接 clang 本身相同的库。至少我已经从 http://llvm.org/releases/download.html 下载了 Clang+LLVM 3.3 二进制文件, 使用下载的库构建插件,它与来自 http://llvm.org 的 clang 一起工作,但不适用于 Xcode 中的 clang - 我遇到以下错误:

error: unable to find plugin 'print-fns'

我已经创建了 Xcode 工作区,它构建了 Clang 插件并展示了如何尝试将它与默认 iOS 应用程序一起使用。您可以在 https://github.com/vsapsai/ClangPluginExample 找到它

关于ios - 如何为 Xcode 项目指定额外的 clang 选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20116475/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com