编译器clang的使用-编译HelloWold程序

    源于在编译Android源码的时候时常看到用到了LLVM编译器,其中针对C语言的是clang,相当于GNU中的gcc。深表好奇,这里试用了解一下。

 

1.安装

    执行sudo apt-get install clang就安装了。同样这里Ubuntu 12.04 安装clang 3.3也有离线安装方法。

kangear@ubuntu:/tmp$ clang -v

Ubuntu clang version 3.0-6ubuntu3 (tags/RELEASE_30/final) (based on LLVM 3.0)

Target: i386-pc-linux-gnu

Thread model: posix

kangear@ubuntu:/tmp$ 

 

2.编译HelloWold

    写一个HelloWorldC程序。如下hello.c

#include 

int main()

{

    printf("Hello World!\n");

    return 0;

}

 

    编译clang hello.c生成a.out,运行结果正常。

 

3.clang的排错特性

    clang的最大的特点是它的排错比较人性化相比gcc。这里测试一下,将上述代码中return 0后的;去掉。重新编译提示如下,真的相当智能。

kangear@ubuntu:/tmp$ clang hello.c

hello.c:5:10: error: expected ';' after return statement

      return 0

                ^

                ;

1 error generated.

kangear@ubuntu:/tmp$

 

    不愧是智能手机鼻祖家做的编译器,相当人性化,直接提示出了缺少内容。

写在最后

     通过测试发现4.2.2版本的C程序默认使用的还是GCC,内核也是GCC。应该通过其它配置可以使用CLANG,不过这里暂时不深究了。Wiki上显示内核使用CLANG编译了,但是大家都还没有这么做,说明还是会有一些问题,应用程序使用clang应该是没有问题的。

你可能感兴趣的:(Android,Linux,应用程序编程)