linux下編譯clang, libc++, libc++abi,以及第二遍自舉編譯
最新的mint16,附帶gcc4.8.1
第一步:用gcc編譯clang
1.
下載llvm+clang最新版本。具體見http://clang.llvm.org/get_started.html
2.
mkdir build_with_gcc
cd build_with_gcc
../llvm/configure --disable-assertions --enable-optimized
make
3.
vi .bashrc
寫入
export PATH=$PATH:/home/username/clang/build_with_gcc/Release/bin
第二步,用剛編譯好clang++以及libsupc++編譯libc++
1.
下載libc++,見http://libcxx.llvm.org/
2.
mkdir libcxxbuild_with_libsupc
cd libcxxbuild_with_libsupc
CC=clang CXX=clang++ cmake -G "Unix Makefiles" -DLIBCXX_CXX_ABI=
libsupc
++ -DLIBCXX_LIBSUPCXX_INCLUDE_PATHS="/usr/include/c++/4.8/;/usr/include/x86_64-linux-gnu/c++/4.8/
" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr
../libcxx
上面一步必須libsupc++,libstdc++有問題。
3.
make
sudo make install
第三步,用編譯好的clang++及libc++編譯libc++abi
1. 下載,見http://libcxxabi.llvm.org/
2.
cd libcxxabi/lib
./buildit
3.
sudo cp libc++abi.so.1.0 /usr/lib/libc++abi.so.1.0
cd /usr/lib
sudo ln -s libc++abi.so.1.0 libc++abi.so.1
sudo ln -s libc++abi.so.1 libc++abi.so
第四步,用clang 以及新編譯的libc++abi,第二次編譯libc++
1.
mkdir libcxxbuild_with_libcxxabi
cd libcxxbuild_with_libcxxabi
CC=clang CXX=clang++ cmake -G "Unix Makefiles" -DLIBCXX_CXX_ABI=libcxxabi -DLIBCXX_LIBCXXABI_INCLUDE_PATHS="../libcxxabi/include" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr ../libcxx
2.
make
sudo make install
第5步,用clang,libc++,libc++abi,重新編譯clang
1.
mkdir build_with_clang
LDFLAGS=-lc++abi ../llvm/configure --disable-assertions --enable-optimized --enable-libcpp
2.
make
3.
vi .bashrc
刪掉之前的,寫入下面
export PATH=$PATH:/home/username/clang/build_with_clang/Release/bin
第6步,測試
clang++ a.cc
clang++ a.cc -stdlib=libc++ -lc++abi