Clang安装配置解释

学习总是循序渐进的过程,之前一节我们知道怎么安装配置clang,相当于我们知道了how to do. 这一次我们来解释一下我们做了些什么,知道why do so.

1. Get the required tools

2. Check out LLVM clang

3. Run CMake to generate the Visual Studio solution and project files

运行CMake生成Visual Studio解决方案和工程文件。那么为什么我们在生成LLVM.sln时要用Cmake呢?它是什么工具,究竟在帮助我们干了一件什么事情呢?

我们知道,我们从SVNdownload下来的都是源文件,许多的源文件依照一定的结构和功能组织在一起,我们怎么使用这些源文件呢?怎么才能让它们像我们用VS构建的解决方案一样呢?对,我们需要一个把这些源文件生成我们想要看到的VS中解决方案的工具,这就是Cmake在这里的作用。

Cmake是跨平台的,可以通过编写CMakeLists.txt配置文件,控制生成在Linux/Unix平台的Makefile或者windows下工程文件。

这里我们就知道了,利用Cmake是生成解决方案的。

4. Build Clang

我们现在得到了LLVM.sln,就可以按照我们自己熟悉的方式进行操作了。生成clang。在这个解决方案中我们看到有358个项目,全部进行进行生成,需要花费很长时间,所以我们只生成clang这个project,而不是选择ALL_BUILD。我们在后面进行再次开发的时候,也一定会添加一些源文件,这时候我们要重新生成,但着实很坑,我们真的要用rebuild吗?不不,下面,我们略讲一点visual studio里面buildrebuild,以及runbuild之间的联系和区别。

4.1 buildrebuild

Rebuild是对Solution下的所有项目,逐个进行 Clean+Build。不论文件更改与否;

Clean+Build是对选中的项目先执行Clean再执行Build。(如果选中Solution的话,全部Clean之后,再全部Build);

Build只是针对有更改过的文件进行编译。而Rebuild会编译所有。

推荐用 Clean+Build 或者Build

Build solution   ---编译解决方案,和build“项目名”的不同之处很明显:一个解决方案可以包含多个项目,编译解决方案就是编译这个解决方案中的所有项目,而build“项目名”就只是编译当前的项目;

至于rebuild,有过很多次这样的经历:把一个项目解决方案编译后,如果没有做过任何改动,点击build菜单命令就不会再编译,那怕你删除了原来编译生成的dllexe文件,vs.net仍然会因为未检测到项目中有新的改动而拒绝编译,但点击rebuild,不管上次编译后有没有做过改动,vs.net都会重新编译。

(转载自:http://www.cnblogs.com/tylerdonet/archive/2012/02/03/2336985.html

4.2 runbuild

我们都知道程序经过预处理,编译,链接,然后才能运行;那么在visual studio中是如何对应的呢?在VS中我们比较常用的就是buildrun, build可以进行这三步预处理,编译,链接,也就是形成了.exe或者.dll,但是没有运行,因为有时候一个解决方案下有很多.exe,我们要执行哪一个取决于我们自己;而点击run,就是执行预处理,编译,链接,运行。这四步,就像我们执行一个打印”hello world”main.cpp,直接会运行那个.exe文件。

 5. VS build后生成的常见文件解释

5.1 obj (objective)

中间文件,也称为目标代码。每个文件经过预处理和编译后形成的中间代码,之后与资源文件,例如一些第三方库文件等,经过连接,生成可执行文件。

5.2 pdb (program debug database)

保存调试和项目状态信息,从而可以对程序的调试配置进行增量链接。

5.3 ilk

临时连接文件

.exe .pdb .ilk 这三个在build/Debug/bin 文件夹下非常的常见,,且成组出现。除此之外, .vcproj 是记录vs project所有信息; .suo 就是 solution user options 解决方案的用户选项,一种配置文件。

 

下面一节,主要讲解在Windows下运行scan-build等会遇到的一些问题和如何解决,另外再简单讲一下如何让自己的第一个checker 出现在clang checker列表里,就是我们在运行”clang -cc1 -analyzer-checker-help” 时可以看到自己定义的checker,是不是还有一点儿小激动。哈哈~

 

参考文章:

http://www.cnblogs.com/shine-yr/p/5214764.html

http://www.cnblogs.com/tylerdonet/archive/2012/02/03/2336985.html

http://www.cnblogs.com/gamesky/archive/2013/06/24/3151982.html

 

转载于:https://www.cnblogs.com/wangyuxia/p/6566359.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值