我有使用Clang静态库构建CompilerInvocation
的代码。我想告诉调用使用特定的框架,就像使用-framework
Clang前端选项一样。特别是,我正在寻找这些"副作用"使用框架:
<Framework/Header.h>
等路径识别的框架头。此时,我认为我在CompilerInvocation
类的选项子对象中随处可见,而我能识别的与此相关的最接近的是标题搜索路径。我似乎找不到告诉CompilerInvocation
寻找特定框架的方法。
这应该如何发生?我使用手动构建的CompilerInvocation
而不是通过命令行参数构建它,因为这似乎是将内存缓冲区作为源单元而不是文件传递的唯一方法。
答案 0 :(得分:0)
我没有找到通过CompilerInvocation
对象执行此操作的方法,但您可以使用CompilerInvocation
从命令行参数中获取clang:: createInvocationFromCommandLine
。使用-framework
参数时,生成的调用可以正确#include
框架标头。这不是很棒,但它有效(除了编译器会抱怨框架是未使用的链接器输入,可能是因为没有链接阶段发生)。
当然,这意味着通过CompilerInvocation
的方式存在,因为这是唯一返回的内容。我可以相信,从框架路径获取框架的逻辑是私有的。