C/C++开发工具Cling、StarPU、Qt SDK、clang介绍

以下为你介绍的C/C++开发工具都可用在Linux系统上:Cling(C++ 解析器)、StarPU(GCC扩展)、Qt SDK(Qt开发工具包)、clang(C/C++编译器)。

1、Cling(C++ 解析器)

Cling 是一个交互式的 C++ 解析器,基于 LLVM 和 C++ 的前端 clang。可用于替换当前 C++ 解释器 CINT,比 CINT 强的方面包括:

产品级的解析器。

Just-in-time 编译器 (JIT),无需封装即可调用库,显著降低字典大小。

模块化的 C++ API,维护简单。

解析器和执行引擎分开。

通过 clang 来支持 C++ 11。

用法:

./cling '#include <stdio.h>' 'printf("Hello World!\n")'

要开始运行:

./cling --help

或输入:

./cling

[cling]$ .help

下载地址:https://gitee.com/mirrors/cling

2、StarPU(GCC扩展)

C/C++开发工具Cling、StarPU、Qt SDK、clang介绍

StarPU-异构多核体系结构的统一运行时系统。

StarUP 通常用来帮助高性能的类库和编译环境探索不同体系结构的多核架构。

StarPU是一组GCC扩展和相关的运行时系统,旨在促进异构系统的编程,例如,具有可编程图形处理单元的计算机。StarPU通常使高性能库或编译器环境更容易地利用可能装有GPGPU或Cell处理器的异构多核计算机,程序员可能不关心底层问题,而可能专注于算法问题。

下载地址:http://starpu.gforge.inria.fr/

3、Qt SDK(Qt开发工具包)

Qt SDK 在一个单独的安装程序内包括了使用 Qt 构建跨平台应用程序所需的工具。

Qt 库。

Qt Creator IDE。

Qt 开发工具。

4、clang(C/C++编译器)

Clang 是一个 C++ 编写、基于 LLVM、发布于 LLVM BSD 许可证下的 C/C++/Objective C/Objective C++ 编译器,其目标(之一)就是超越 GCC。

Clang 开发事出有因,Wiki 介绍如下:

Apple 使用 LLVM 在不支持全部 OpenGL 特性的 GPU (Intel 低端显卡) 上生成代码 (JIT),令程序仍然能够正常运行。之后 LLVM 与 GCC 的集成过程引发了一些不快,GCC 系统庞大而笨重,而 Apple 大量使用的 Objective-C 在 GCC 中优先级很低。此外 GCC 作为一个纯粹的编译系统,与 IDE 配合很差。加之许可证方面的要求,Apple 无法使用修改版的 GCC 而闭源。于是 Apple 决定从零开始写 C family 的前端,也就是基于 LLVM 的 Clang 了。

Clang 的特性:

1]、快:通过编译 OS X 上几乎包含了所有 C 头文件的 carbon.h 的测试,包括预处理 (Preprocess),语法 (lex),解析 (parse),语义分析 (Semantic Analysis),抽象语法树生成 (Abstract Syntax Tree) 的时间,Clang 是 Apple GCC 4.0 的 2.5x 快。

2]、内存占用小:Clang 内存占用是源码的 130%,Apple GCC 则超过 10x。

3]、诊断信息可读性强:我不会排版,推荐去网站观看。其中错误的语法不但有源码提示,还会在错误的调用和相关上下文的下方有~~~~~和^的提示,相比之下 GCC 的提示很天书。

4]、GCC 兼容性。

5]、设计清晰简单,容易理解,易于扩展增强。与代码基础古老的 GCC 相比,学习曲线平缓。

6]、基于库的模块化设计,易于 IDE 集成及其他用途的重用。由于历史原因,GCC 是一个单一的可执行程序编译器,其内部完成了从预处理到最后代码生成的全部过程,中间诸多信息都无法被其他程序重用。Clang 将编译过程分成彼此分离的几个阶段,AST 信息可序列化。通过库的支持,程序能够获取到 AST 级别的信息,将大大增强对于代码的操控能力。对于 IDE 而言,代码补全、重构是重要的功能,然而如果没有底层的支持,只使用 tags 分析或是正则表达式匹配是很难达成的。

下载地址:http://clang.llvm.org/

注明

以上就是C/C++开发工具Cling、StarPU、Qt SDK、clang的介绍内容,这些C/C++开发工具都能使用在Linux操作系统中。

栏目相关文章