目的:简化编程以及实现可以在Windows和Linux之间相互移植的作用,提供更方便的进程(线程)间通讯的手段
主要内容:进程间共享内存、锁以及信号量和消息队列等等。
近期在考虑如何将频繁访问的数据以STL 容器的方式存入到共享内存以供多个进程共同访问时,由于自身缺乏手段,所以考虑到了传说中强大的boost库,于是进行了初步学习和使用,故对于期间学习的内容进行总结和分享,同时敬请高人指教。
在使用某个开发库的时候首先必须的是搭建开发测试环境,以本人的开发环境为例。Windows Xp
####################boost安装和使用######################################
1.安装并编译
rpm -qa boost 查看是否已经安装了boost
su - root
mv boost_1_44_0.tar.bz2 /tmp
bunzip2 boost_1_44_0.tar.bz2
tar -xvf boost_1_44_0.tar
cd /tmp/boost_1_44_0
首先我们要编译bjam:
cd /tmp/boost_1_44_0/tools/jam
./build_dist.sh
编译完后在这个目录下有编译出的bjam文件 (高版本的在/tmp/boost_1_44_0会直接有 bjam可执行文件)
cd /tmp/boost_1_44_0/tools/jam/stage
cp bin.linuxx86 /tmp/boost_1_44_0 -r
运行命令编译:
./bjam "-sTOOLS=gcc" "--includedir=/usr/include" "--libdir=/usr/lib/boost" install
./bjam -sTOOLSETS=gcc -sINCLUDEDIR=/usr/include -sLIBDIR=/usr/lib/boost install
开始编译,等待编译完成,需很长时间。
关于bjam的后面的参数的设置:
-sTOOLS=gcc 指定编译器为GCC
--includedir=/usr/include/ 指定头文件的安装目录,我安装在/usr/include下。如果安装成功,将在/usr/include/生成目录boost_1_33,该目录下就是boost的头文件目录
--libdir=/usr/lib/boost 指定boost的库文件的存放位置, 生成的 .a .so 文件将放在该目录下
install 编译并安装boost
对于boost_1_44_0 上面全部忽略 直接执行 默认安装在/usr/local下
./bootstrap.sh --help
./bootstrap.sh --prefix=/usr
./bjam install
卸载旧的版本
cd /usr/include
rm -rf boost
cd /usr/lib
rm -rf libboost_*
####################boost交叉编译环境安装和使用######################################
#作者:申玉
#描述:boost 的安装和使用
#时间:2010-10-13 14:29:42
####################boost安装和使用##################################################
cd /usr/local
mkdir boost
cd /tmp/boost
tar -xvf boost_1_44_0.tar
cd /tmp/boost/boost_1_44_0
cp bootstrap.sh bootstrap.sh.bak
./bootstrap.sh
./bjam --prefix=/usr/local
./bjam install
//注意删除其/usr/lib64下的旧的库文件
使用 file 命令查看文件类型
file libboost_date_time.so.1.44.0
libboost_date_time.so.1.44.0: ELF 64-bit LSB shared object, AMD x86-64, version 1 (SYSV), not stripped
./bjam --toolset=gcc "-sBUILD=release <cxxflags>-m64" --with-thread stage
./bjam --toolset=gcc "-sBUILD=release <cxxflags>-m64" --with-date_time stage
cp project-config.jam project-config.jam.bak