LLVM 是一个开源的编译器架构,它已经被成功应用到多个应用领域。Clang是 LLVM 的一个编译器前端,它目前支持 C, C++, Objective-C 以及 Objective-C++ 等编程语言。Clang 对源程序进行词法分析和语义分析,并将分析结果转换为 AST ( 抽象语法树 ) ,最后使用 LLVM 作为后端代码的生成器。
Clang 的开发目标是提供一个可以替代 GCC 的前端编译器。与 GCC 相比,Clang 是一个重新设计的编译器前端,具有一系列优点,例如模块化,代码简单易懂,占用内存小以及容易扩展和重用等。由于 Clang 在设计上的优异性,使得 Clang 非常适合用于设计源代码级别的分析和转化工具。
今天,我们就简要的介绍一下如何在windows平台下利用Visual Studio安装和配置Clang并进一步进行基于Clang的编程。
首先,在windows下编译clang需要以下几个工具:
①SVN。用于拉取clang的source code。下载地址:https://tortoisesvn.net/downloads.html
②版本在2013及以上的Visual Studio。下载地址:https://www.visualstudio.com/zh-cn/downloads/download-visual-studio-vs.aspx
③Python。用于clang test。下载地址:https://www.python.org/downloads/
④CMake。用于生成VS的solution文件。下载地址:http://www.cmake.org/cmake/resources/software.html
接着,就是编译clang的步骤:
①拉取llvm的源码。在命令行中输入:svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm
②拉取clang的源码。在当前目录输入:cd llvm\tools 进入子目录,输入:svn co http://llvm.org/svn/llvm-project/cfe/trunk clang
①拉取llvm的源码。在命令行中输入:svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm
②拉取clang的源码。在当前目录输入:cd llvm\tools 进入子目录,输入:svn co http://llvm.org/svn/llvm-project/cfe/trunk clang
③利用CMake生成VS的solution文件。首先,回到最开始的llvm目录之外,在与它同级的目录下建立一个新的文件夹build。接着,进入build文件夹中,根据对应的安装的vs的版本,在命令行中输入对应的命令
cmake -G "Visual Studio XXX" ..\llvm
cmake -G "Visual Studio XXX" ..\llvm
其中,在XXX替换当前的VS版本,例如:若是2013版则输入12,若是2015版则输入14。如果此步骤成功,则可以在build中看到对应的.sln文件。
④Build Clang。如果上面的步骤都已经成功,那么则直接打开llvm.sln文件,选择ALL_BUILD工程进行Build。这个过程会花费几个小时的时间。
⑤完成。若上一步执行成功,那么你可以看到在build\Debug\bin中包含了clang.exe等多个可执行文件。此时可以将该路径加入到环境变量中,最后就可以在命令行中输入 clang --help 进行测试,看是否可以执行了。
至此,完整的一个在windows平台下进行clang配置的过程也就完成了。