clang 搭建和编译boost 和zero ICE库 (Ubuntu10 64)
相關(guān)介紹資料如下:
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 官方對(duì)于clang的說(shuō)明情況
關(guān)于clang的驗(yàn)證
Linux:
Clang: 3.3, 3.2, 3.1, 3.0
如上可見(jiàn),這個(gè)官方已經(jīng)驗(yàn)證過(guò)
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
這個(gè)官方已經(jīng)聲明對(duì)于Linux下的clang不支持,不過(guò)很多人已經(jīng)驗(yàn)證過(guò)【在zeroc的論壇搜索clang可以看到】
首先在如下站點(diǎn)下載這些C++工具庫(kù)
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
開(kāi)工前首先需要把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?可以進(jìn)行編譯,在?stage/lib?下是編譯出來(lái)的?.a?.so?等庫(kù)文件
??
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?編譯出來(lái)對(duì)應(yīng)的庫(kù),其中ice之編譯除了基礎(chǔ)庫(kù),如果需要編譯其他的模塊,類似處理即可
?
使用C++11和ice的混合使用的例子
#Ice非c11版本和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++
?
詳細(xì)的代碼和例子參考?http://pan.baidu.com/s/1nGab5?
?
Clang編譯出的boost?和ice庫(kù)的使用http://pan.baidu.com/s/1nGab5?參考其他的test目錄的具體代碼
?
其中一個(gè)例子測(cè)試了boost?uuid的使用,clang的性能大體提升2%左右,看來(lái)clang的二進(jìn)制性能還是比較高的。
附錄【配置安裝腳本】
#!/bin/bash
:<<EOF
#驗(yàn)證機(jī)器環(huán)境
#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編譯出來(lái)的庫(kù)
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編譯出來(lái),其他的需要安裝對(duì)應(yīng)的內(nèi)容,沒(méi)有驗(yàn)證
#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測(cè)試驗(yàn)證程序
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
?
詳細(xì)資料參考 http://pan.baidu.com/s/1nGab5?
轉(zhuǎn)載于:https://www.cnblogs.com/2018/p/3482263.html
總結(jié)
以上是生活随笔為你收集整理的clang 搭建和编译boost 和zero ICE库 (Ubuntu10 64)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Operations on Number
- 下一篇: python队列join