首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在各种平台上高效地使用LLVM

在各种平台上高效地使用LLVM
EN

Stack Overflow用户
提问于 2019-05-30 11:26:20
回答 1查看 44关注 0票数 1

我正在使用LLVM (C#,.NET核心)实现一种语言。我希望这种语言具有跨平台兼容性,因为它的最终可执行文件是针对本地计算机编译的,例如Windows10Linux或x64。

为此,我当前的策略是实现一个包装器CLI实用程序,它使用我的语言的编译器库(它使用LLVM),以及用于各种平台的打包的LLVM可执行文件。

因此,基本上,我的CLI工具会自动调用LLVM的工具(llcllilld-link等)。

然而,这意味着我必须打包为我想要面向的每个平台编译的LLVM工具(以及一些库,比如libc for Unix-like system,以确保版本兼容性和一致性?)。

因此,如果我想要针对以下平台:

代码语言:javascript
复制
ubuntu16, ubuntu14, armv7a, windows x86_64, debian8, ...

从字面上讲,我必须以某种方式获得它们相应的LLVM编译的可执行工具。

语言库、CLI实用程序和LLVM工具被压缩(“打包”)到一个简单的ZIP文件中。

我倾向于使用完全托管的系统,因此我希望避免强迫用户在其本地机器上安装LLVM工具。

我是否应该将语言/编译器打包到相应平台使用的标准打包方法上,例如。用于Fedora等的.RPM

有没有替代的,有效的(通用的?)方法来实现这一点,特别是不需要在包中包含LLVM工具和库?

其他跨平台编译器是如何解决这个问题的,或者它只是特定于LLVM的?

EN

回答 1

Stack Overflow用户

发布于 2019-05-30 19:42:29

您可以将整个LLVM静态地链接到您的.NET应用程序中,并执行这些工具在您的编译器中执行的所有任务。实际上,这就是clang所做的--只不过它使用了外部链接器。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56371219

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档