clang 搭建和編譯boost 和zero ICE庫 (Ubuntu10 64)

相關介紹資料以下:html

Boost編譯
http://sourceforge.net/projects/boost/files/boost/1.55.0/boost_1_55_0.tar.gz/download 下載文件
http://www.boost.org/users/history/version_1_55_0.html 官方對於clang的說明狀況
關於clang的驗證
Linux:
Clang: 3.3, 3.2, 3.1, 3.0
如上可見,這個官方已經驗證過linux


ICE編譯
http://www.zeroc.com/download/Ice/3.5/Ice-3.5.1.tar.gz
http://www.zeroc.com/download/Ice/3.5/ThirdParty-Sources-3.5.1.tar.gz
http://www.zeroc.com/download/Ice 這裏有全部的版本
http://www.bzip.org/1.0.6/bzip2-1.0.6.tar.gz
這個官方已經聲明對於Linux下的clang不支持,不過不少人已經驗證過【在zeroc的論壇搜索clang能夠看到】c++

首先在以下站點下載這些C++工具庫bootstrap

http://downloads.sourceforge.net/project/boost/boost/1.55.0/boost_1_55_0.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fboost%2Ffiles%2Fboost%2F1.55.0%2F&ts=1387440583&use_mirror=jaistubuntu

 

http://www.zeroc.com/download/Ice/3.5/Ice-3.5.1.tar.gzbash

http://www.zeroc.com/download/Ice/3.5/ThirdParty-Sources-3.5.1.tar.gz工具

開工前首先須要把clang安裝好,具體參考 http://www.cnblogs.com/2018/p/3464638.html性能

 

以下是具體的配置步驟測試

boost boost_1_55_0.tar.gzui

bootstrap.sh 

 16,17,18

LIBDIR=/root/work/clang+llvm-3.3-amd64-Ubuntu-10.04.4/lib/c++

INCLUDEDIR=/root/work/clang+llvm-3.3-amd64-Ubuntu-10.04.4/lib/c++/v1

LIBS="c++"

 211 增長

TOOLSET=clang

使用./b2 能夠進行編譯,在 stage/lib 下是編譯出來的 .a .so 等庫文件

  

ICE Ice-3.5.1.tar.gz ThirdParty-Sources-3.5.1.tar.gz

mcpp bzip須要編譯

Ice-3.5.1/cpp/config/Make.rules首行增長

CC=clang

CXX=clang++

CPP=clang -E

Ice-3.5.1/cpp/config/Make.rules.Linux

模仿g++,增長:ifeq ($(CXX),clang++)

 

bzlib.h 拷貝到 cpp/src

libbz2.a 拷貝到 cpp/lib

 

make

如上便可使用clang 編譯出來對應的庫,其中ice之編譯除了基礎庫,若是須要編譯其餘的模塊,相似處理便可

 

使用C++11ice的混合使用的例子

#Icec11版本和c11版本的類混合使用

clang++ -c -I. -I/root/work/tmp/Ice-3.5.1/cpp/include Hello.cpp

clang++ -c -I. -I/root/work/tmp/Ice-3.5.1/cpp/include Client.cpp

clang -std=c++11 -stdlib=libc++ -I/root/work/clang+llvm-3.3-amd64-Ubuntu-10.04.4/lib/c++/v1 -c c11.cpp

clang++ -stdlib=libc++  -L/root/work/libs -o client Hello.o Client.o c11.o -lIce -lIceUtil -lc++

 

詳細的代碼和例子參考 http://pan.baidu.com/s/1nGab5 

 

Clang編譯出的boost ice庫的使用http://pan.baidu.com/s/1nGab5 參考其餘的test目錄的具體代碼

 

其中一個例子測試了boost uuid的使用,clang的性能大致提高2%左右,看來clang的二進制性能仍是比較高的。

附錄【配置安裝腳本】

#!/bin/bash

:<<EOF

#驗證機器環境

#target=x86_64-linux-gnu

#Thread model: posix

#gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5.1) 

###

EOF

 

pushd pkg

#2 boost

tar -xzvf boost_1_55_0.tar.gz -C .

cp -f pack/bootstrap.sh boost_1_55_0/.

#compile boost

pushd  boost_1_55_0

./bootstrap.sh

./b2

#now  boost_1_55_0/stage/lib clang編譯出來的庫

popd

 

#3 ICE

tar -xzvf Ice-3.5.1.tar.gz -C .

cp pack/Make.rules Ice-3.5.1/cpp/config/.

cp pack/Make.rules.Linux Ice-3.5.1/cpp/config/.

#dep mcpp

tar -xzvf ThirdParty-Sources-3.5.1.tar.gz -C .

pushd ThirdParty-Sources-3.5.1

tar -xzvf mcpp-2.7.2.tar.gz -C .

popd

pushd ThirdParty-Sources-3.5.1/mcpp-2.7.2

patch -p0 < ../mcpp/patch.mcpp.2.7.2

./configure  CFLAGS=-fPIC --enable-mcpplib --disable-shared

cp -f ../../pack/mcpp_Makefile src/Makefile

pushd src

make

popd

popd

cp -f ThirdParty-Sources-3.5.1/mcpp-2.7.2/src/mcpp_out.h Ice-3.5.1/cpp/src/.

cp -f ThirdParty-Sources-3.5.1/mcpp-2.7.2/src/mcpp_lib.h Ice-3.5.1/cpp/src/.

cp -f ThirdParty-Sources-3.5.1/mcpp-2.7.2/src/.libs/libmcpp.a Ice-3.5.1/cpp/lib/.

 

#dep bz2

mkdir -p bzip2

tar -xzvf bzip2-1.0.6.tar.gz -C bzip2

pushd bzip2

cp -f ../pack/bzMakefile bzip2/Makefile

make

popd

cp -f bzip2/bzlib.h Ice-3.5.1/cpp/src/.

cp -f bzip2/libbz2.a Ice-3.5.1/cpp/lib/.

#compile ICE using clang

pushd Ice-3.5.1/cpp/src

make

popd

#libIce.so libIceUtil.so slice編譯出來,其餘的須要安裝對應的內容,沒有驗證

#ICE sample

cp -f pack/config.* Ice-3.5.1/cpp/demo/Ice/hello/.

pushd Ice-3.5.1/cpp/demo/Ice/hello

make

popd

#deploy library

cp -f Ice-3.5.1/cpp/lib/libIce* /usr/lib/.

#copy ICE測試驗證程序

mkdir -p ../test/ice

cp -f Ice-3.5.1/cpp/demo/Ice/hello/client ../test/ice/.

cp -f Ice-3.5.1/cpp/demo/Ice/hello/server ../test/ice/.

cp -f Ice-3.5.1/cpp/demo/Ice/hello/config.* ../test/ice/.

 

#cleanup

rm -r -f bzip2

rm -r -f ThirdParty-Sources-3.5.1

rm -r -f Ice-3.5.1

 

###

popd

 

詳細資料參考 http://pan.baidu.com/s/1nGab5 

相關文章
相關標籤/搜索