2014-04-06

clang取代gcc

在FreeBSD 10.0開始,
系統就不再內建gcc compiler了,
取而代之的為clang

以下引用自FreeBSD 10.0 release note:
GCC is no longer installed by default on architectures 
where clang(1) is the default compiler.

參考: http://zh.wikipedia.org/wiki/Clang



不過有些程式,
在編譯時函式庫連結就是綁死gcc/g++ compiler,
硬要用clang的話還要改一堆連結參數,很麻煩。

所以可以考慮自行裝gcc,
目前gcc的版本到gcc49,不過預設還是gcc47。
ports位置在/usr/ports/lang/底下,可以選自己要的版本安裝。

經過漫長的編譯過程後,(真的挺久的,大概2小時吧)
會發現安裝好的程式名稱是gcc47,而不是gcc。
可以自行加symbolic link,
以免一些程式在編譯時找不到compiler。

# ln -s /usr/local/bin/gcc47 /usr/local/bin/gcc
# ln -s /usr/local/bin/g++47 /usr/local/bin/g++
# ln -s /usr/local/bin/cpp47 /usr/local/bin/cpp

這邊不把clang link為gcc的原因是,
可以區別gcc跟clang兩個不同的compiler,
而且有些以前的程式只能吃gcc的連結函式庫,
所以要用clang的話,直接用clang去compile就好了。

沒有留言:

張貼留言