2 入门
2.1 概述
本章解释了如何使用 LLVM 编译器构建和执行一个简单的 C 程序。
该程序使用 Hexagon 软件开发工具构建,并在 Hexagon 模拟器上执行。
注意:
假设您的计算机上已安装 Hexagon 软件开发工具。 这些工具是组装和链接已编译程序所必需的。
2.2 创建源文件
创建以下 C 源文件:
#include <stdio.h>
int main()
{
printf(“Hello world\n”);
return(0);
}
将文件另存为 hello.c 。
2.3 编译程序
使用以下命令编译程序:
hexagon-clang hello.c -o hello
这会将 C 源文件 hello.c 转换为可执行文件 hello 。
2.4 执行程序
要执行该程序,请使用以下命令:
hexagon-sim hello
该程序在终端中输出其消息:
Hello world
在程序输出之后是模拟器生成的消息“Done! ”和一些执行统计:
Done!
T0: Insns=5648 Tcycles=7931
T1: Insns=0 Tcycles=0
T2: Insns=0 Tcycles=0
Total: Insns=5648 Pcycles=47587
Simulator speed=0.314599 Mips
Ratio to Real Time (600 MHz) = ~1/226 (elapsed time = 0.017953s)
统计数据显示在每个 Hexagon 处理器线程上执行的指令和周期数。
您现在已经使用 LLVM 编译器编译并执行了一个 C 程序。 有关使用编译器的更多信息,请参见以下章节。
3 使用编译器
3.1 概述
LLVM 编译器将 C 和 C++ 程序翻译成 Hexagon 处理器代码。
C 和 C++ 程序存储在源文件中,这些文件是用文本编辑器创建的文本文件。 Hexagon 处理器代码存储在目标文件中,目标文件是由链接器处理的二进制文件。
本章涵盖以下主题
- 启动编译器
- 输入输出文件
- 编译器选项
- 警告和错误消息
- 使用代码优化
- 安全编程支持
3.2 启动编译器
要从命令行启动 C 编译器,请键入:
hexagon-clang [options...] input_files...
要从命令行启动 C++ 编译器,请键入:
hexagon-clang++ [options...] input_files...
编译器在命令行上接受一个或多个输入文件。 输入文件可以是 C/C++ 源文件或目标文件。 例如:
hexagon-clang hello.c mylib.c
命令开关用于控制各种编译器选项(第 3.4 节)。 一个开关由一个破折号(‘ - ’)后跟一个开关名称和可选参数组成。
开关区分大小写,必须至少用一个空格隔开。 例如:
hexagon-clang hello.c -o hello
要列出可用的命令选项,请使用 --help 选项:
hexagon-clang --help
hexagon-clang++ --help
此选项使编译器显示命令行语法,后跟可用命令选项的列表。
注意:
clang 是 LLVM 编译器框架的前端驱动程序的名称。