clangとは
2014-01-03 三輪晋
特徴
●
●
●

C C++ Object-C Object-C++のコンパイラ
バックエンドが LLVM
Apple社内のプロジェクトだったものがオープンソース化
The Architecture of Open Source Applications: LLVM http://www.aosabook.org/en/llvm.html
どこで使われているのか
●
●

FreeBSDでは9から標準のコンパイラとなった
○ BuildingFreeBSDWithClang - FreeBSD Wiki https://wiki.freebsd.org/BuildingFreeB...
clangが出てきた背景
●
●

●

Apple社内のプロダクトに LLVMが使われていた
LLVMのフロントエンドとして GCCが使われていた
○ GCCはデカすぎる
○ GCC開発にとってObject-Cの優先度低い
○ ライセンスがア...
使い方
Hello World!
#include <stdio.h>
int main(int ac, char** av )
{
puts("おれは人間をやめるぞ!ジョジョーーーーッ!! ");
return 0;
}
%
clang hello.c
hello.c:5:8: warning: illegal character
encoding in string literal [-Winvalid-sourceencoding] puts("<82><A...
make時はCCを設定する
CC=clang ./configure && make && make install
Upcoming SlideShare
Loading in …5
×

Clangとは

2,158 views

Published on

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,158
On SlideShare
0
From Embeds
0
Number of Embeds
210
Actions
Shares
0
Downloads
7
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Clangとは

  1. 1. clangとは 2014-01-03 三輪晋
  2. 2. 特徴 ● ● ● C C++ Object-C Object-C++のコンパイラ バックエンドが LLVM Apple社内のプロジェクトだったものがオープンソース化
  3. 3. The Architecture of Open Source Applications: LLVM http://www.aosabook.org/en/llvm.html
  4. 4. どこで使われているのか ● ● FreeBSDでは9から標準のコンパイラとなった ○ BuildingFreeBSDWithClang - FreeBSD Wiki https://wiki.freebsd.org/BuildingFreeBSDWithClang PlayStation4の開発 ○ Developer Toolchain for the PlayStation4 http://llvm.org/devmtg/2013-11/#talk8 ○ http://llvm.org/devmtg/2013-11/slides/Robinson-PS4Toolchain.pdf
  5. 5. clangが出てきた背景 ● ● ● Apple社内のプロダクトに LLVMが使われていた LLVMのフロントエンドとして GCCが使われていた ○ GCCはデカすぎる ○ GCC開発にとってObject-Cの優先度低い ○ ライセンスがアレ ○ デバッグもしづらい フロントエンド作っちゃいない YO http://en.wikipedia.org/wiki/Clang
  6. 6. 使い方 Hello World! #include <stdio.h> int main(int ac, char** av ) { puts("おれは人間をやめるぞ!ジョジョーーーーッ!! "); return 0; }
  7. 7. % clang hello.c hello.c:5:8: warning: illegal character encoding in string literal [-Winvalid-sourceencoding] puts("<82><A8><82><EA><82><U+0350>l… ^ 1 warning generated. % ./a.out おれは人間をやめるぞ!ジョジョーーーーッ!!
  8. 8. make時はCCを設定する CC=clang ./configure && make && make install

×