编译好的boost库
⑴ 如何用Visual Studio 2010编译boost1.42库
64位windows平台,编译环境是VS2005,进入Visual Studio 2005 x64 Win64 Command Prompt(单纯的cmd也不一定不行,我没试)。把bjam.exe放在boost根目录下,进入根目录,执行:
bjam --toolset=msvc address-model=64 --with-thread stage
bjam --toolset=msvc address-model=64 --with-date_time stage
关键选项:“address-model=64 ”
64位linux平台,使用gcc编译。进入boost根目录,执行:
./bjam --toolset=gcc --with-thread stage
./bjam --toolset=gcc --with-date_time stage
linux平台下倒是简单,不过网上有篇文章介绍用如下命令编译,不知道是多此一举,还是适用于某些情况(非64位linux主机?)。
./bjam --toolset=gcc "-sBUILD=release <cxxflags>-m64" --with-thread stage
./bjam --toolset=gcc "-sBUILD=release <cxxflags>-m64" --with-date_time stage
唉。命令都很简单,可浪费了我不少时间。usage根本没写,去看boost build的嘛,页数n多不说,看完之后能否找到答案还是未知数。网上相关资料很少而且大多南辕北辙,只好一直搜索+尝试。其实我只是想要个64位版本的库而已,这应该不是啥稀罕的需求吧?
在windows平台下,编译出来的是否是64位类库,只有link 64位程序的时候才能发现。如果不是,link程序无法找到类库中定义的函数或者类。linux不知道,因为我整出来直接就是64位了,我也懒得再找一台32位linux主机折腾了。
在1.37之后的boost,如果想要使用boost::thread库,必须有boost::date_time库。当然这件事情又一如既往很酷地没有出现在容易看到的地方。而是让你链接错误后再去玩抓虫游戏。
⑵ Linux下G++怎么编译使用Boost库的程序
首先把Boost库的头文件存放到/usr/include/boost/路径下,再把Lib文件存放到/usr/local/lib/boost/路径下。修改/etc/profile文件,在此文件中增加如下2个环境变量:
BOOST_INCLUDE=/usr/include/boost
export BOOST_INCLUDE
BOOST_LIB=/usr/local/lib/boost
export BOOST_LIB
写一个如下所示的cpp文件。
//samlpe.cpp
#include <iostream>
#include <string>
#include <boost/thread.hpp>
using namespace std;
void threadRoutine(void)
{
boost::xtime time;
time.nsec = 0;
time.sec = 20;
cout << "线程函数做一些事情" << endl;
boost::thread::sleep(time);
}
int main(void)
{
string str;
cout << "输入任意字符开始创建一个线程..." << endl;
cin >> str;
boost::thread t(&threadRoutine);
t.join();
cout << "输入任意字符结束运行..." << endl;
cin >> str;
return 0;
}
保存。使用g++编译,命令如下所示:
g++ -o samlpe.out samlpe.cpp -I$BOOST_INCLUDE -L$BOOST_LIB -lboost_thread-gcc-mt
其中-I参数指定Boost头文件路径,-L参数指定Boost库文件路径,-l参数指定使用线程库名。在我使用的这个版本Boost里,到/usr /local/lib/boost路径下,可以看到有关Boost线程库文件,比如:libboost_thread-gcc-mt.a等。注意在用-l 参数指定库名时把磁盘文件名前面那个lib前缀去掉就可以了。
⑶ VS2015使用boost库,在不用修改项目属性中include和library路径下,还能成功编译,如何设置
打开VS2015安装目录中这个文件文件D:ProgramFiles(x86)MicrosoftVisualStudio14.0VCVCWizardsdefault.vcxproj,其实是个XML文件,在default.vcxproj文件末尾的</Project>之前填加下列内容,保存即可大功告成:
<PropertyGroup>
<IncludePath>d:oost_1_60_0;$(IncludePath)</IncludePath>
<VC_LibraryPath_x86>d:oost_1_60_0VC2015_lib32;$(VC_LibraryPath_x86)</VC_LibraryPath_x86>
<VC_LibraryPath_x64>d:oost_1_60_0VC2015_lib64;$(VC_LibraryPath_x64)</VC_LibraryPath_x64>
</PropertyGroup>
其中d:oost_1_60_0是boost库解压路径,该文件夹下面有boost文件夹(是boost源文件)
d:oost_1_60_0VC2015_lib32是编译好的32位库目录
d:oost_1_60_0VC2015_lib64是编译好的64位库目录
⑷ Linux 编译安装的boost库怎么删除
建议你可以用电脑管家来卸载哟
电脑管家是直接把卸载同时把注册列表也就清理了。(有的重启后会自动删除)
【打开电脑管家——工具箱——卸载】
卸载完之后,会有残留,在实行【强力卸载】
⑸ 如何编译&使用boost库
1. 编译
1.2. VS2005编译boost_1_55_0
1.2.1. 使用vs2005的命令行执行:...\boost_1_55_0\bootstrap.bat
1.2.2. 编译动态库
bjam install stage --toolset=msvc-8.0 --stagedir="C:\Boost\boost_vc_80" link=shared runtime-link=shared threading=multi debug release
1.2.3. 编译静态库
bjam install stage --toolset=msvc-8.0 --stagedir="D:\Boost\boost_vc_80" link=static runtime-link=static threading=multi debug release
各种参数详解:
stage:表示只生成库(dll和lib)
install:还会生出包含的头文件
--toolset=msvc-8.0:指定编译器版本,8.0为vs2005,其他VS类推。
--stagedir:指定编译后存放的目录
link:生成动态库/静态库。动态库(shared),静态库(static)
runtime-link:动态/静态C/C++运行时库,同样有shared和static两种组合方式。这样共有4种组合方式,个人根据自己需要选择。
threading:单/多线程,一般都是多线程程序,当然multi了。
debug/release:编译版本,一般2个都需要。
2. 使用
使用静态库:
[cpp] view plain print?
//#define BOOST_ALL_DYN_LINK
#include <boost/bind.hpp>
#include <boost/asio.hpp>
#include <boost/thread/thread.hpp>
#include <boost/thread/mutex.hpp>
#include <boost/thread/condition.hpp>
使用静态库连接时,仅需要包含的lib为:
debug版:libboost_system-vc80-mt-gd-1_55.lib等一系列包含gd的库。
release版本:libboost_system-vc80-mt-1_55.lib等一系列不包含gd的库。
使用动态库链接:
[cpp] view plain print?
#define BOOST_ALL_DYN_LINK
#include <boost/bind.hpp>
#include <boost/asio.hpp>
#include <boost/thread/thread.hpp>
#include <boost/thread/mutex.hpp>
#include <boost/thread/condition.hpp>
使用动态库链接时,仅需要包含的lib为:
debug版:boost_system-vc80-mt-gd-1_55.lib,同时在生成的exe加入boost_system-vc80-mt-gd-1_55.dll
release版:boost_system-vc80-mt-1_55.lib,同时在生产的exe路径下加入boost_system-vc80-mt-1_55.dll
⑹ 如何在XCode中配置Boost库
话说boost在xcode5上的安装确实很费劲,参考实验了相当数量的文章后,终于成功在IOS模拟器上跑通了boost库,废话少说,上步骤
1. 下载boost.sh安装脚本,这里选择的是payco的安装脚本,https://gist.github.com/payco/6880661 ,最简单好用。也可以在csdn上我的代码中下载,https://code.csdn.net/snippets/68017.git
2. 打开终端,su成root,命令为 sudo su,输入密码即可
3. 清理掉所有之前安装的配置,尤其是在用户目录下的user-config.jam,必须删除掉,之前安装的文件也一并删除掉,免得影响。(本人就是没清理之前的配置,导致一直编译不通过)
4. 把boost.sh 拷贝到/usr/local 下,运行之,会自动下载,解压,配置,编译boost。
5. 等待编译安装完毕后,显示 Completed successfully,boost库即安装完毕
完成了一半,剩余的工作就是配置xcode5,其他版本的xcode也是大同小异,没有什么区别的。
6. 在xcode下的target-》Building setting-> Linking-> Other Linker Flags中,添加 -lboost_system -lboost_thread,这两项(常用的功能都包含在这2个库中,还有其他要使用的功能,都在这里添加库文件)
7. 在在xcode下的target-》Building setting->Search Path s 中,Header Search Path 添加/usr/local/ios/prefix/include
8. 在在xcode下的target-》Building setting->Search Paths 中,Library Search Path 添加/usr/local/ios/prefix/lib(这是给真机用的,包含arm6,arm7,arm7s等),以及/usr/local/ios/build/i386(这是给模拟器用的),基本都在一个位置上,截取一张图好了
添加完毕之后,测试一下编译是否成功。
在任意一个cpp文件内,添加
#include "boost/swap.hpp"
#include "boost/asio.hpp"
编译无报错,则顺利完成boost库在xcode5下的IOS使用编译:)
。
