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编译
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 

目录
打赏
0
0
0
0
9
分享
相关文章
ADE下载问题解决:编译OpenCV于Ubuntu 18.04
如果显示了OpenCV的版本号,那恭喜你,一道编译大餐现已酣畅淋漓,色香味俱佳,等你品尝。
35 8
Ubuntu环境下以源码编译方式安装Vim的步骤介绍
以上就是在Ubuntu环境下以源码编译方式安装Vim的全部步骤。就像煮一杯咖啡,虽然过程中需要耐心和一些技巧,但等到你熟悉之后,你会发现,不仅可以定制自己喜欢的口味,过程中的乐趣也是不能忽视的。希望你在编译安装Vim的过程中,能体验到这份乐趣。
107 21
|
3月前
|
Ubuntu下使用apt为Apache2编译PHP7.1
以上就是在Ubuntu系统下,使用apt为Apache2编译PHP7.1的过程。希望这个过程对你有所帮助,如果你在执行过程中遇到任何问题,都可以在网上找到相关的解决方案。
64 25
基于Ubuntu Server的YTM32 SDK工程编译
希望这个“烹饪”比喻能帮助你理解SDK工程编译的过程。记住,编程就像烹饪一样,需要耐心,实践,和不断的学习。祝你烹饪愉快!
69 21
Ubuntu环境下的Samba源码编译
以上就是在Ubuntu环境下编译Samba源码的步骤。希望这个指南能帮助你成功地从源码编译Samba。如果你在编译过程中遇到任何问题,你可以查阅Samba的官方文档,或者在网上搜索相关的教程和解决方案。
96 23
|
3月前
|
在Ubuntu系统中为apt的apache2编译PHP 7.1的方法
以上就是在Ubuntu系统中为apt的apache2编译PHP 7.1的方法。希望这个指南能帮助你成功编译PHP 7.1,并在你的Apache服务器上运行PHP应用。
99 28
【VTK】ubuntu手动编译VTK9.3 Generating qmltypes file 失败
通过以上步骤,您可以成功解决在Ubuntu上编译VTK 9.3时遇到的 `Generating qmltypes file`失败的问题。关键在于确保系统正确安装了所需的Qt库,并通过CMake配置正确的路径。编译完成后,您将拥有一个功能完备的VTK库,可以用于各种可视化任务。
84 14
Ubuntu编译ffmpeg解决错误:ERROR: avisynth/avisynth_c.h not found
通过本文的详细指导,您可以顺利地在Ubuntu系统上配置和编译FFmpeg,并解决Avisynth头文件缺失的问题。
259 27
Ubuntu系统下编译OpenCV4.8源码
通过上述步骤,你可以在Ubuntu系统上成功编译并安装OpenCV 4.8。这种方法不仅使你能够定制OpenCV的功能,还可以优化性能以满足特定需求。确保按照每一步进行操作,以避免常见的编译问题。
158 30
Ubuntu系统下编译OpenCV4.8源码
通过上述步骤,你可以在Ubuntu系统上成功编译并安装OpenCV 4.8。这种方法不仅使你能够定制OpenCV的功能,还可以优化性能以满足特定需求。确保按照每一步进行操作,以避免常见的编译问题。
142 43
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问