欢迎来到openEuler社区的LLVM项目!本仓库是llvm-project下游仓库。
此仓库包含LLVM项目的源代码,LLVM基础设施是一个用于构建高度优化的编译器、优化器和运行时环境的工具包。
LLVM项目有多个组件。该项目的核心组件被称为“LLVM”,它包含处理中间表示及将其转换为目标文件所需的所有工具(包括汇编器、反汇编器、位码分析器和为位码优化器)、库和头文件。
类C语言使用Clang前端,该组件将C、C++、Objective-C和Objective-C++代码编译成LLVM位码,并使用LLVM将其转换为二进制目标文件。
其他组件包括:C++标准库(libc++)、LLD链接器等。
首先通过git下载源码,然后通过build.sh脚本一键式构建LLVM。构建方式有直接命令行构建
和容器化构建
两种。
推荐使用openEuler操作系统进行构建,如果您使用其他操作系统,建议使用容器化构建方式。
首先确保系统安装了依赖软件包,可以用如下命令安装。
yum install -y gcc g++ make cmake openssl-devel python3 \
python3-setuptools python-wheel texinfo binutils-devel libatomic
然后可以通过 ./build.sh -h
查看当前工程支持的构建选项。通过命令行执行一键式构建,例如:
./build.sh -r -b release -X X86 -j 8
为了解决由于开发环境差异导致的构建失败和构建产物二进制差异问题,openEuler LLVM项目提供了容器化构建方法。得益于openEuler容器镜像项目,提前制作了llvm-build-deps容器镜像。开发者可以通过build.sh
脚本的-C
选项启用容器化构建,例如:
./build.sh -C -r -b release -X X86 -j 8 // 添加了-C选项
相关依赖:
build.sh
脚本执行docker命令时不需要再加sudo
命令。可以通过如下命令将当前用户加入docker用户组。sudo usermod -aG docker ${USER}
注意:第一次执行容器化构建时,脚本会自动从镜像仓库拉取llvm-build-deps容器镜像。
1、Fork 本仓库
2、新建 Feat_xxx 分支
3、提交代码
4、新建 Pull Request
加入discourse论坛,提出或参与问题、RFC等交流。
社区参与者的行为规范.
几种方式:
Compiler_Assistant
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
1. 开源生态
2. 协作、人、软件
3. 评估模型