日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Ubuntu >内容正文

Ubuntu

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

發布時間:2025/4/9 Ubuntu 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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?

轉載于:https://www.cnblogs.com/2018/p/3482263.html

總結

以上是生活随笔為你收集整理的clang 搭建和编译boost 和zero ICE库 (Ubuntu10 64)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。