VS2013编译boost1.55库

简介: 1. 官网下载最新的Boost库,我的是1.55   2. 在使用vs2013编译boost-1.55.0之前,先要给boost做下修改: boost_1_55_0\boost\intrusive\detail\has_member_function_callable_with.

1. 官网下载最新的Boost库,我的是1.55

 

2.

在使用vs2013编译boost-1.55.0之前,先要给boost做下修改:

boost_1_55_0\boost\intrusive\detail\has_member_function_callable_with.hpp line:222

template<class U>
static BOOST_PP_CAT(zeroarg_checker_, BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME)
       <U> Test(BOOST_PP_CAT(zeroarg_checker_, BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME)<U>*);

替换成以下内容:

#ifdef BOOST_MSVC
     template<class U>
     static decltype(boost::move_detail::declval<Fun>().BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME()
           , boost_intrusive_has_member_function_callable_with::yes_type())
           Test(Fun*);
#else
     template<class U>
     static BOOST_PP_CAT(zeroarg_checker_, BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME)
           <U> Test(BOOST_PP_CAT(zeroarg_checker_, BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME)<U>*);
#endif

 

3. 编译

64位编译:

  1. 从开始菜单启动Visual Studio 2013的vs2013 x64兼容工具命令行,然后转到boost根文件夹,运行bootstrap.bat生成x64版的bjam.exe。
  2. 运行命令:   

bjam.exe stage --toolset=msvc-12.0 --without-graph --without-graph_parallel --without-math --without-mpi --without-serialization

--without-wave --without-test --without-program_options --without-serialization --without-signals

--stagedir=".\bin\vc12_x64" link=static runtime-link=shared threading=multi debug release address-model=64 

 

4. 添加boostest工程的包含目录和库目录

 

添加库目录

 

5. 测试程序

   新建一个空的Win32 Console Application项目

#include <iostream>
#include <boost/lexical_cast.hpp>
#include <boost/timer.hpp>

int main()
{
    int a = boost::lexical_cast<int>("123");
    double b = boost::lexical_cast<double>("123.0123456789");
    std::string s0 = boost::lexical_cast<std::string>(a);
    std::string s1 = boost::lexical_cast<std::string>(b);
    std::cout << "number is: " << a << " " << b << std::endl;
    std::cout << "string is: " << s0 << " " << s1 << std::endl;


    int c = 0;
    try
    {
        c = boost::lexical_cast<int>("abcd");
    }
    catch (boost::bad_lexical_cast & e)
    {
        std::cout << e.what() << std::endl;
        return -1;
    }


    return 0;
}


6. 运行结果:

number is: 123 123.012
string is: 123 123.0123456789
bad lexical cast: source type value could not be interpreted as target
Press any key to continue . . .

 

目录
相关文章
|
Java 编译器 数据库连接
玩转IDEA项目结构Project Structure,打Jar包、模块/依赖管理全搞定(下)
玩转IDEA项目结构Project Structure,打Jar包、模块/依赖管理全搞定(下)
玩转IDEA项目结构Project Structure,打Jar包、模块/依赖管理全搞定(下)
|
7月前
|
机器学习/深度学习 人工智能 算法
Python+YOLO v8 实战:手把手教你打造专属 AI 视觉目标检测模型
本文介绍了如何使用 Python 和 YOLO v8 开发专属的 AI 视觉目标检测模型。首先讲解了 YOLO 的基本概念及其高效精准的特点,接着详细说明了环境搭建步骤,包括安装 Python、PyCharm 和 Ultralytics 库。随后引导读者加载预训练模型进行图片验证,并准备数据集以训练自定义模型。最后,展示了如何验证训练好的模型并提供示例代码。通过本文,你将学会从零开始打造自己的目标检测系统,满足实际场景需求。
5953 0
Python+YOLO v8 实战:手把手教你打造专属 AI 视觉目标检测模型
|
存储 SQL NoSQL
数据库的演变
【10月更文挑战第6天】
263 2
|
JSON API PHP
如何使用PHP开发API接口?
本文详细介绍了如何使用PHP开发API接口,涵盖从基础概念到实战步骤的全过程。首先解释了API接口的基本原理,包括HTTP协议、REST架构风格、JSON格式和OAuth认证机制。接着介绍了开发环境的设置,包括PHP安装、Web服务器配置、数据库设置等。文章还探讨了API开发的完整流程,从需求确定、框架选择、端点设计到代码编写、测试、安全性考量及性能优化。最后通过一个实战案例演示了如何创建一个简单的API端点,并讨论了部署与监控的方法。
582 0
Java 类是如何被加载的
这篇文章从双亲委派讲到了Class文件的加载,最后又绕回到双亲委派,看似有点绕,其实只有理解了Class的加载机制,才能更好的理解类似双亲委派这样的机制,否则只死记硬背一些空洞的理论,是无法起到由内而外的理解的。
11802 94
|
监控 API 数据安全/隐私保护
2024年开源API工具盘点,覆盖API全生命周期
2024年经济持续低迷,本文整理一些免费的开源工具,旨在帮助企业组织降低工具的支出成本,能用免费的何必用付费的呢(狗头)?
614 0
|
存储 人工智能
深度解析RAG大模型知识冲突,清华西湖大学港中文联合发布
【7月更文挑战第27天】清华大学、西湖大学与香港中文大学联合发布的论文深入探讨了RAG(Retrieval-Augmented Generation)大模型在处理信息时遇到的知识冲突问题及其解决方案。RAG模型通过结合预训练语言模型与外部知识库生成准确内容,但会面临上下文记忆、上下文间及内部记忆冲突。研究提出了基于上下文感知的记忆管理、多上下文推理及知识选择权衡等方法来缓解这些问题。尽管取得了进展,但在计算资源需求、解决方案效果验证及模型鲁棒性等方面仍有挑战待克服。[论文](https://arxiv.org/abs/2403.08319)
542 3
|
存储 芯片 内存技术
考研计算机组成原理总结(4)
考研计算机组成原理总结(4)
849 1
考研计算机组成原理总结(4)
|
虚拟化 Docker 容器
安装docker后,VMware网络无法访问了,VMware重置网络设置
1.vmware虚拟机处于关闭状态 2.vmware程序—>edit(编辑)--》左下角 “Restore Default”恢复默认设置         【恢复】完成后     开启虚拟机试试吧,你的虚拟机可以正常上网了(我的虚拟机为桥接方式,win10_x64   dh...
2870 0