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
③利用CMake生成VS的solution文件。首先,回到最开始的llvm目录之外,在与它同级的目录下建立一个新的文件夹build。接着,进入build文件夹中,根据对应的安装的vs的版本,在命令行中输入对应的命令
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配置的过程也就完成了。

windows平台下基于VisualStudio的Clang安装和配置的更多相关文章

  1. windows平台下基于QT和OpenCV搭建图像处理平台

        在之前的博客中,已经分别比较详细地阐述了"windows平台下基于VS和OpenCV"以及"Linux平台下基于QT和OpenCV"搭建图像处理框架,并 ...

  2. 叙Windows平台下基于MBR和UEFI的bootkit(一)--以MBR为例

    安全的对抗首先在权限方面,权限高的进程对权限低的权限就是就是降维打击,无往不利.当权限相同时,启动得早便为王.所谓的bootkit也就是基于这个思路设计的一种复杂病毒.它优先于Windows系统启动, ...

  3. windows 环境下基于Python 的GDAL 安装

    最近由于需要利用pytho处理地理空间数据,但是python本身并没有访问和处理地理空间数据的包,只能借助于GDAL(Geospatial Data Abstraction Library)来进行访问 ...

  4. HttpServer:一款Windows平台下基于IOCP模型的高并发轻量级web服务器

    HttpServer的特点1.完全采用IOCP模型,实现真正的异步IO,高并发.高可靠: 2.支持4G以上文件下载: 3.支持断点续传: 4.轻量级,体积小,服务器文件仅200多K,无任何依赖库: 5 ...

  5. windows环境下MySQL-5.7.12-winx64下载安装与配置

    系统:64位Win-7 官网压缩包:mysql-5.7.12-winx64.zip 前后花了一些时间,以前都是下载软件直接安装在本地,现在这个不一样,下载压缩包后要解压缩到安装目录,然后在控制台下配置 ...

  6. MongoDB学习总结(一) —— Windows平台下安装

    > 基本概念 MongoDB是一个基于分布式文件存储的开源数据库系统,皆在为WEB应用提供可扩展的高性能数据存储解决方案.MongoDB将数据存储为一个文档,数据结构由键值key=>val ...

  7. 在Windows平台下安装与配置Memcached及C#使用方法

    1.在Windows下安装Memcached 资料来源:http://www.jb51.net/article/30334.htm 在Windows平台下安装与配置Memcached的方法,Memca ...

  8. [转]Windows平台下安装Hadoop

    1.安装JDK1.6或更高版本 官网下载JDK,安装时注意,最好不要安装到带有空格的路径名下,例如:Programe Files,否则在配置Hadoop的配置文件时会找不到JDK(按相关说法,配置文件 ...

  9. Spotlight on Mysql在Windows平台下的安装及使用简介

    Spotlight on Mysql在Windows平台下的安装及使用简介   by:授客 QQ:1033553122 1.   测试环境 Win7 64位 mysql-connector-odbc- ...

随机推荐

  1. maven 依赖

    依赖排除 当一个项目A依赖项目B,而项目B同时依赖项目C,如果项目A中因为各种原因不想引用项目C,在配置项目B的依赖时,可以排除对C的依赖. 示例(假设配置的是A的pom.xml,依赖关系为:A -- ...

  2. 函数式中的 currying

    currying 是函数式语言中经常遇到的一个概念,翻译成 柯里化,不是库里化. currying 指的是将接收多个参数的函数变换成接收一个单一参数,并且返回接收余下的参数而且返回结果的新函数的技术. ...

  3. JSONModel对架构的影响及解决方案

    越来越多的项目使用CocoaPods,使用CocoaPods很有可能会用过JSONModel. JSONModel是个很强大的库,只要根据JSON定义好对应的类并继承JSONModel,就可以把JSO ...

  4. TCP/IP、Http、Socket的区别

    1.标准网络层次 网络由下往上分为:物理层.数据链路层.网络层.传输层.会话层.表示层和应用层. 下面的图表试图显示不同的TCP/IP和其他的协议在最初OSI模型中的位置: 7 应用层 例如HTTP. ...

  5. python pymysql和orm

    pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同. 1. 安装 管理员打开cmd,切换到python的安装路径,进入到Scripts目录下(如:C:\Users\A ...

  6. Hihocoder 1059 String Matching Content Length

    预处理下连续相等的字符个数其实主要是看是否满3个 后面递推的时候特判下+1上次递推[i-1,j-1]不是来自[i-2,j-1]也不是来自[i-1,j-2]其实就是只来自[i-4,j-4]+3,和[i- ...

  7. 终于解决各种动画问题了,感谢雨松MOMO

    http://www.xuanyusong.com/archives/2222 看懂了,什么问题关于动画的都可以解决的,加油!

  8. scp 从远程拷贝文件不需要密码

    执行这一句,弹出来要你输入密码,输入一次后,以后再 scp 远程机的文件  再也不需要密码了 ssh-copy-id myusername@8.8.8.8

  9. escape(), encodeURI()和encodeURIComponent()(转)

      escape(), encodeURI()和encodeURIComponent()是在Javascript中用于编码字符串的三个常用的方法,而他们之间的异同却困扰了很多的Javascript初学 ...

  10. 校内通知-Notifications表增加老师,家长,学生发送范围字段

    老师发送范围:TReceiveRange 家长发送范围:PReceiveRange 学生发送范围:SReceiveRange alter table Notifications add TReceiv ...