1. 程式人生 > >linux下編譯clang, libc++, libc++abi,以及第二遍自舉編譯

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