同步操作将从 OpenHarmony/third_party_llvm-project 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
此目录及其子目录包含LLVM的源代码,LLVM是一个用于构建高度优化的编译器、优化器和运行时环境的工具包。
自述文件简要介绍了如何开始构建LLVM。有关如何为LLVM项目做出贡献的更多信息,请查看 为LLVM做出贡献 指南。
取自 https://llvm.org/docs/GettingStarted.html.
欢迎来到LLVM项目!
LLVM项目有多个组件。该项目的核心本身被称为“LLVM”。这包含处理中间表示并将其转换为对象文件所需的所有工具、库和头文件。工具包括汇编器、反汇编器、位码分析器和位码优化器。它还包含基本的回归测试。
类C语言使用 Clang 前端。此组件将C、C++、目标-C和目标-C++代码编译为LLVM位码,并使用LLVM将其编译为目标文件。
其他组件包括:libc++ C++ 标准库,LLD链接器 等。
LLVM入门文档可能已过期。Clang入门 页面可能有更准确的信息。
这是获取和构建LLVM源的示例工作流和配置:
Checkout LLVM (包括Clang等相关子项目):
git clone https://github.com/llvm/llvm-project.git
git clone --config core.autocrlf=false https://github.com/llvm/llvm-project.git
配置和构建LLVM和Clang:
cd llvm-project
mkdir build
cd build
cmake -G <generator> [options] ../llvm
一些常见的构建系统生成器有:
Ninja
---用于生成 Ninja 构建文件。大多数llvm开发人员使用Ninja。Unix Makefiles
--- 用于生成与make兼容的并行makefile。Visual Studio
--- 用于生成Visual Studio项目和解决方案。Xcode
--- 用于生成Xcode项目。一些常见选项:
-DLLVM_ENABLE_PROJECTS='...'
--- 要额外构建的LLVM子项目的分号分隔列表。可以包括:clang、clang-tools-extra、libcxx、libcxxabi、libunwind、lldb、编译器-rt、lld、波莉或调试信息测试中的任何一个。
例如,要构建LLVM、Clang、libcxx和libcxxabi,请使用 -DLLVM_ENABLE_PROJECTS="clang;libcxx;libcxxabi"
.
-DCMAKE_INSTALL_PREFIX=directory
--- 为目录 指定要安装LLVM工具和库的完整路径名 (默认 /usr/local
).
-DCMAKE_BUILD_TYPE=type
--- 类型 的有效选项为 调试、发布、带调试信息发布 和最小尺寸发布。默认值为调试。
-DLLVM_ENABLE_ASSERTIONS=On
--- 在启用断言检查的情况下编译(调试编译的默认值为Yes,所有其他编译类型的默认值为No)。
cmake --build . [-- [options] <target>]
或直接在上面指定的构建系统。
ninja
or make
)将构建所有LLVM。check-all
目标(即ninja check-all
)将运行回归测试,以确保一切都正常工作。check-<project>
目标。make
,请使用选项-j NNN
,其中NNN
是并行作业的数量,例如您拥有的CPU数量。有关详细信息,请参阅 CMake
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。