clang 搭建和编译boost 和zero ICE库 (Ubuntu10 64)

相关介绍资料如下:

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
如上可见,这个官方已经验证过


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++工具库

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=jaist

 

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

开工前首先需要把clang安装好,具体参考 http://www.cnblogs.com/2018/p/3464638.html

 

如下是具体的配置步骤

boost boost_1_55_0.tar.gz

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 

posted @ 2013-12-21 09:30  2012  阅读(2982)  评论(0编辑  收藏  举报