boost编译mac
A. 如何编译64位 boost类库
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库。当然这件事情又一如既往很酷地没有出现在容易看到的地方。而是让你链接错误后再去玩抓虫游戏。
转载,仅供参考。
B. 如何编译libboost
您好,这样的:
1、当前boost最新版本为1.55,下载地址http://sourceforge.net/projects/boost/files/boost/1.55.0/
或者从官网(www.boost.org)下载最新版的BOOST源码,经过测试,2012和2013步骤相同,这里以2012为例。
2、打开VS2012 Native Tools Command,可以从开始--Microsoft Visual Studio 2012找到:将下载的 boost_1_55_0.zip 解压在F盘,例如 F:\boost_1_53_0,执行bootstrap.bat。
3、编译,可以简单的使用b2 install,也可以指定存放目录,或者寻找网上其它帮助文章。
查看帮助可以输入:.\b2 --help
比如要开启多线程编译:b2 install threading=multi
设置生成的是debug或者release
备注:如果是使用VS2013,请指定输出库类型,否则会缺一个lib文件:
"无法打开文件 libboost_thread_vc120_mt_sgd-1_55.lib"。
在2013时,我是使用下面的语句进行编译:
// 如果要获取动态库:
bjam install stage --toolset=msvc-12.0 --stagedir="C:\Boost\boost_vc_120" link=shared runtime-link=shared threading=multi debug release
// 如果是要获取静态库:
bjam install stage --toolset=msvc-12.0 --stagedir="C:\Boost\boost_vc_120" link=static runtime-link=static threading=multi debug release
其中,注意修改--toolset=msvc-12.0,将12.0修改成对应的vs版本号,12.0是VS2013的版本号。
目标地址也要修改成你所需的。
注意,不要漏了install,它会帮你把头文件集合到一个文件夹中。
编译过程有一个复制过程,编译需要的时间比较长,本次编译过程中,会在C盘根目录下生成一个boost文件夹,然后包含include和lib文件夹,这就是我们将要使用的头文件和库文件。
4、编译完了我们就使用编译在C盘中的文件。我将它们拷贝到了F盘,
需要简单的配置两个地方:这里使用绝对路径,也可以配置环境来使用。
5、然后建立了一个工程测试。 在BoostTest中新建一个控制台应用程序,下图三个文件分别是:
1) 将要使用的boost头文件和库文件。 2) 解压出的boost文件夹,就是使用这个文件夹来进行 1 -- 3步骤的。 3)BoostTest 测试工程。
#include <iostream>
#include <boost/thread/thread.hpp>
void hello()
{
std::cout << "Hello world, I'm a thread!" << std::endl;
}
int main()
{
boost::thread thrd(&hello);
thrd.join();
}
编译测试工程, 并运行,开始boost之旅吧。
C. 如何在XCode中配置Boost库
1. 下载boost.sh安装脚本,这里选择的是payco的安装脚本, ,最简单好用。
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使用编译:)
。
D. 安装了多个vs怎么编译boost 1.5.3
1、用它带的booststrap脚本生成b2、bjam 2、用b2、bjam生成lib boost附带的文档一开始就是教你怎么安装编译boost。照着做就是了
E. 如何在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使用编译:)
。
F. 安装了多个版本vs怎么编译boost
boost有些库是不用安装的,仅需包含头文件库就行了。
但是有些很爽的库(thread,regex)需要根据不同的系统做不同的调整,所以必须编译。
编译的流程很简单,如果是windows操作系统,首先找到那个booststrap.bat的东西,然后在控制台下运行它,它会生成bjam.exe,然后就可以通过bjam来编译boost库了,在命令行下输入bjam --help看选项。
如果嫌麻烦,可以一次将boost库需要编译的全部编译了,bjam --build-type=complete,生成库全在stage目录下。
G. boost源码如何应用
下载Boost库,这里我选择下载boost_1_55_0.zip
解压boost文件到本地目录(如G:\boost_1_55_0),可以发现解压后的文件中有一个bootstrap.bat文件。
然后以管理员身份打开cmd窗口,
上述命令执行完毕后可以发现G:\boost_1_55_0下新生成了一个bjam.exe文件
在命令窗口中输入语句:bjam.exe
此过程将默认根据系统已经安装好的编译工具(VS2008,2010,2012,2013)等编译相应的Lib文件、头文件等。(此步骤大概需要10分钟)
可以看到msvc 12.0,这是因为我系统中已经安装过了VS2013
msvc : 8.0是VS2005
msvc : 10.0是VS2010
msvc : 12.0是VS2012、VS2013
第5步执行成功后会有如下信息提示
至此我们已经完成了boost库的安装,下面需要配置一下VS2013了。新建一个VS2013控制台应用程序(工程名为boostest),添加如下代码
#include "stdafx.h"
#include <boost/lexical_cast.hpp>
#include <iostream>
using namespace std;
int main()
{
using boost::lexical_cast;
int a = lexical_cast<int>("123");
double b = lexical_cast<double>("123.0123456789");
string s0 = lexical_cast<string>(a);
string s1 = lexical_cast<string>(b);
cout << "number: " << a << " " << b << endl;
cout << "string: " << s0 << " " << s1 << endl;
int c = 0;
try{
c = lexical_cast<int>("abcd");
}
catch (boost::bad_lexical_cast& e){
cout << e.what() << endl;
}
return 0;
}
添加boostest工程的包含目录和库目录
包含目录添加 G:\boost_1_55_0
库目录添加 G:\boost_1_55_0\stage\lib
进入代码窗口编译并成功运行说明BOOST库确实已经配置成功,可以放心使用。
H. 怎样在macbook上安装bootstrap
安装boost ./bootstrap.sh ./b2 编译完后, 头文件在当前路径的boost文件下, 函数库在./stage/lib中 然后 mkdir /usr/local/boost cp -R ./boost /usr/local/boost cp ./stage/lib/* /usr/local/boost/ 将头文件和lib库放到/usr/local/boost目录下!
I. 使用boost:filesystem后编译不能通过怎么办
1, 是的
2, 本来编译好的程序在不同操作系统上就不能使用。不过你在目标系统上重新编译源代码应该是可以的。boost库一种是用头文件的方式实现,这个没有依赖性。如果是实现在库里,需要在目标系统上安装相应的库文件,才可以和你的程序链接。
3,编写源代码,编译器编译成目标文件,链接器链接成可执行文件。VS是傻瓜软件,隐藏很多细节,出问题不好找。