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


阅读更多

更多精彩内容