在Swift Xcode项目中使用LLVM C API

Jum*_*hyn 8 llvm swift

我试图在用Swift编写的Xcode项目中使用LLVM C API.为此,我在这里松散地遵循指南,但遇到了麻烦.在编译步骤中,在Xcode中添加包含路径到构建设置后,我收到以下错误:

<unknown>:0: error: module 'LLVM_Backend.CodeGen.PBQP.math' requires feature 'cplusplus'
/Users/freddy/Development/llvm-source/build/include/llvm/Support/DataTypes.h:35:10: note: submodule of top-level module 'LLVM_Backend' implicitly imported here
#include <math.h>
         ^
<module-includes>:1:9: note: in file included from <module-includes>:1:
#import "./Analysis.h"
        ^
/Users/freddy/Development/llvm-source/llvm/include/llvm-c/./Analysis.h:22:10: note: in file included from /Users/freddy/Development/llvm-source/llvm/include/llvm-c/./Analysis.h:22:
#include "llvm-c/Types.h"
         ^
/Users/freddy/Development/llvm-source/llvm/include/llvm-c/Types.h:17:10: error: could not build module 'LLVM_Support_DataTypes'
#include "llvm/Support/DataTypes.h"
         ^
/Users/freddy/Development/Xcode Projects/SwiftLLVMTest/SwiftLLVMTest/main.swift:10:8: error: could not build Objective-C module 'LLVM_C'
import LLVM_C
Run Code Online (Sandbox Code Playgroud)

幻灯片的下一步是添加标志:

-Xcc -D__STDC_CONSTANT_MACROS \
-Xcc -D__STDC_LIMIT_MACROS
Run Code Online (Sandbox Code Playgroud)

但我不确定在构建设置中将它们放在哪里 - 将它们添加到'其他C标志'或'其他Swift标志'选项似乎没有做任何事情.

我应该怎么做呢?

Cod*_*256 4

brew install llvm尝试通过简单地使用Homebrew运行来安装预编译的 LLVM 。

注意:我强烈建议使用 Swift 包装器,例如LLVMSwift,在这种情况下,您应该从这里开始遵循其安装说明。但如果您想自己直接访问 LLVM,请继续阅读。

添加到“构建设置”下项目所需目标下的/usr/local/opt/llvm/include标头搜索路径和库搜索路径:/usr/local/opt/llvm/lib

添加到搜索路径

然后将/usr/local/opt/llvm/lib/libLLVM.dylib(在 Finder 中使用 打开open -R '/usr/local/opt/llvm/lib/libLLVM.dylib')拖到“常规”下的“链接的框架和库”(并将其设置为“必需”,如图所示):

添加到“链接的框架和库”

最后,创建一个 Objective-C 桥接标头(如果您不确定如何操作,请执行本教程中的步骤 1-2#include <llvm-c/Core.h> )并包含您需要的任何标头(例如): Objective-C 桥接头文件

一切准备就绪!只需像通常在 Swift 代码中那样使用任何 LLVM 类即可。