添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

The Clang project provides a language front-end and tooling infrastructure for languages in the C language family (C, C++, Objective C/C++, OpenCL, CUDA, and RenderScript) for the LLVM project. Both a GCC-compatible compiler driver ( clang ) and an MSVC-compatible compiler driver ( clang-cl.exe ) are provided. You can get and build the source today.

Features and Goals

Some of the goals for the project include the following:

End-User Features :

  • Fast compiles and low memory use
  • Expressive diagnostics ( examples )
  • GCC & MSVC compatibility
  • Utility and Applications :

  • Modular library based architecture
  • Support diverse clients (refactoring, static analysis, code generation, etc.)
  • Allow tight integration with IDEs
  • Use the LLVM 'Apache 2' License

    Internal Design and Implementation :

  • A real-world, production quality compiler
  • A simple and hackable code base
  • A single unified parser for C, Objective C, C++, and Objective C++
  • Conformance with C/C++/ObjC and their variants
  • Of course this is only a rough outline of the goals and features of Clang. To get a true sense of what it is all about, see the Features section, which breaks each of these down and explains them in more detail.

    Development of the new front-end was started out of a need for a compiler that allows better diagnostics, better integration with IDEs, a license that is compatible with commercial products, and a nimble compiler that is easy to develop and maintain. All of these were motivations for starting work on a new front-end that could meet these needs.

    Current Status

    Clang is considered to be a production quality C, Objective-C, C++ and Objective-C++ compiler when targeting any target supported by LLVM. As example, Clang is used in production to build performance-critical software like Chrome or Firefox.
    If you are looking for source analysis or source-to-source transformation tools, Clang is probably a great solution for you. Please see the C++ status page or the C status page for more information about what standard modes and features are supported.

    Get it and get involved!

    Start by getting the code, building it, and playing with it . This will show you the sorts of things we can do today and will let you have the "Clang experience" first hand: hopefully it will "resonate" with you. :)

    Once you've done that, please consider getting involved in the Clang community . The Clang developers include numerous volunteer contributors with a variety of backgrounds. If you're